From a2d7dede737947d7c6afa20a88e1f0c64e0eb96c Mon Sep 17 00:00:00 2001
From: Daniel Baumann
Date: Thu, 10 Aug 2023 11:18:52 +0200
Subject: Merging upstream version 1.42.0.
Signed-off-by: Daniel Baumann
---
.codacy.yml | 1 +
.eslintignore | 1 +
.github/data/distros.yml | 109 +-
.github/labeler.yml | 127 +-
.github/workflows/build.yml | 5 +-
.github/workflows/generate-integrations.yml | 98 +
.github/workflows/review.yml | 2 +-
.gitignore | 6 +-
.vscode/settings.default.json | 10 +
.yamllint.yml | 6 +-
CHANGELOG.md | 493 +-
CMakeLists.txt | 3 +
Makefile.am | 21 +
README.md | 371 +-
aclk/README.md | 6 +-
aclk/aclk_otp.c | 4 +
aclk/https_client.c | 216 +-
aclk/schema-wrappers/alarm_stream.cc | 6 +-
aclk/schema-wrappers/alarm_stream.h | 1 +
.../scenarios/aclk-testing/agent_netdata.conf | 45 +
build_external/scenarios/gaps_lo/mostly_off.conf | 7 +-
claim/README.md | 18 +-
claim/claim.c | 50 +-
claim/netdata-claim.sh.in | 2 +-
collectors/COLLECTORS.md | 3 +-
collectors/Makefile.am | 1 +
collectors/all.h | 66 +-
collectors/apps.plugin/README.md | 17 +-
collectors/apps.plugin/apps_plugin.c | 134 +-
collectors/apps.plugin/metadata.yaml | 665 +++
collectors/apps.plugin/metrics.csv | 81 -
collectors/apps.plugin/multi_metadata.yaml | 662 ---
collectors/cgroups.plugin/metadata.yaml | 1058 ++++
collectors/cgroups.plugin/metrics.csv | 109 -
collectors/cgroups.plugin/multi_metadata.yaml | 1023 ----
collectors/cgroups.plugin/sys_fs_cgroup.c | 165 +-
collectors/charts.d.plugin/ap/metadata.yaml | 248 +-
collectors/charts.d.plugin/ap/metrics.csv | 7 -
collectors/charts.d.plugin/apcupsd/metadata.yaml | 340 +-
collectors/charts.d.plugin/apcupsd/metrics.csv | 11 -
collectors/charts.d.plugin/libreswan/metadata.yaml | 220 +-
collectors/charts.d.plugin/libreswan/metrics.csv | 3 -
collectors/charts.d.plugin/nut/metadata.yaml | 369 +-
collectors/charts.d.plugin/nut/metrics.csv | 12 -
collectors/charts.d.plugin/opensips/metadata.yaml | 480 +-
collectors/charts.d.plugin/opensips/metrics.csv | 20 -
collectors/charts.d.plugin/sensors/metadata.yaml | 274 +-
collectors/charts.d.plugin/sensors/metrics.csv | 8 -
collectors/cups.plugin/metadata.yaml | 247 +-
collectors/cups.plugin/metrics.csv | 7 -
collectors/debugfs.plugin/debugfs_plugin.c | 3 +
collectors/debugfs.plugin/debugfs_plugin.h | 1 +
collectors/debugfs.plugin/debugfs_zswap.c | 28 +-
collectors/debugfs.plugin/metadata.yaml | 395 ++
collectors/debugfs.plugin/metrics.csv | 12 -
collectors/debugfs.plugin/multi_metadata.yaml | 233 -
.../debugfs.plugin/sys_devices_virtual_powercap.c | 217 +
collectors/diskspace.plugin/metadata.yaml | 235 +-
collectors/diskspace.plugin/metrics.csv | 3 -
collectors/ebpf.plugin/ebpf.c | 167 +-
collectors/ebpf.plugin/ebpf.h | 8 +-
collectors/ebpf.plugin/ebpf_cachestat.c | 36 +-
collectors/ebpf.plugin/ebpf_dcstat.c | 36 +-
collectors/ebpf.plugin/ebpf_fd.c | 38 +-
collectors/ebpf.plugin/ebpf_functions.c | 2 +-
collectors/ebpf.plugin/ebpf_oomkill.c | 4 +
collectors/ebpf.plugin/ebpf_process.c | 37 +-
collectors/ebpf.plugin/ebpf_process.h | 6 +-
collectors/ebpf.plugin/ebpf_shm.c | 40 +-
collectors/ebpf.plugin/ebpf_socket.c | 42 +-
collectors/ebpf.plugin/ebpf_swap.c | 48 +-
collectors/ebpf.plugin/ebpf_vfs.c | 39 +-
collectors/ebpf.plugin/metadata.yaml | 3308 ++++++++++++
collectors/ebpf.plugin/metrics.csv | 197 -
collectors/ebpf.plugin/multi_metadata.yaml | 2360 ---------
collectors/freebsd.plugin/freebsd_sysctl.c | 16 +-
collectors/freebsd.plugin/metadata.yaml | 3430 +++++++++++++
collectors/freebsd.plugin/metrics.csv | 112 -
collectors/freebsd.plugin/multi_metadata.yaml | 3031 -----------
collectors/freeipmi.plugin/freeipmi_plugin.c | 6 +-
collectors/freeipmi.plugin/metadata.yaml | 151 +
collectors/freeipmi.plugin/metrics.csv | 10 -
collectors/freeipmi.plugin/multi_metadata.yaml | 199 -
collectors/idlejitter.plugin/metadata.yaml | 162 +-
collectors/idlejitter.plugin/metrics.csv | 2 -
collectors/ioping.plugin/metadata.yaml | 175 +-
collectors/ioping.plugin/metrics.csv | 2 -
collectors/macos.plugin/macos_mach_smi.c | 6 +-
collectors/macos.plugin/macos_sysctl.c | 6 +-
collectors/macos.plugin/metadata.yaml | 727 +++
collectors/macos.plugin/metrics.csv | 51 -
collectors/macos.plugin/multi_metadata.yaml | 797 ---
collectors/metadata/schemas/multi-module.json | 16 -
collectors/metadata/schemas/single-module.json | 662 ---
collectors/metadata/single-module-template.yaml | 97 -
collectors/nfacct.plugin/metadata.yaml | 250 +-
collectors/nfacct.plugin/metrics.csv | 8 -
collectors/perf.plugin/metadata.yaml | 397 +-
collectors/perf.plugin/metrics.csv | 18 -
collectors/plugins.d/gperf-config.txt | 61 +-
collectors/plugins.d/gperf-hashtable.h | 164 +-
collectors/plugins.d/plugins_d.c | 5 +
collectors/plugins.d/plugins_d.h | 19 +-
collectors/plugins.d/pluginsd_parser.c | 293 +-
collectors/proc.plugin/README.md | 31 +
collectors/proc.plugin/metadata.yaml | 5317 ++++++++++++++++++++
collectors/proc.plugin/metrics.csv | 271 -
collectors/proc.plugin/multi_metadata.yaml | 4716 -----------------
collectors/proc.plugin/plugin_proc.c | 8 +-
collectors/proc.plugin/plugin_proc.h | 2 +
collectors/proc.plugin/proc_meminfo.c | 520 +-
collectors/proc.plugin/proc_pressure.c | 149 +-
collectors/proc.plugin/proc_pressure.h | 3 +-
collectors/proc.plugin/proc_stat.c | 2 +-
collectors/proc.plugin/proc_vmstat.c | 12 +-
collectors/proc.plugin/sys_class_drm.c | 1179 +++++
collectors/proc.plugin/sys_devices_pci_aer.c | 335 ++
.../proc.plugin/sys_devices_system_edac_mc.c | 334 +-
.../python.d.plugin/adaptec_raid/metadata.yaml | 263 +-
.../python.d.plugin/adaptec_raid/metrics.csv | 5 -
collectors/python.d.plugin/alarms/metadata.yaml | 252 +-
collectors/python.d.plugin/alarms/metrics.csv | 3 -
collectors/python.d.plugin/am2320/metadata.yaml | 211 +-
collectors/python.d.plugin/am2320/metrics.csv | 3 -
collectors/python.d.plugin/anomalies/metadata.yaml | 172 +-
collectors/python.d.plugin/anomalies/metrics.csv | 3 -
collectors/python.d.plugin/beanstalk/metadata.yaml | 455 +-
collectors/python.d.plugin/beanstalk/metrics.csv | 15 -
.../python.d.plugin/bind_rndc/bind_rndc.conf | 16 +-
collectors/python.d.plugin/bind_rndc/metadata.yaml | 294 +-
collectors/python.d.plugin/bind_rndc/metrics.csv | 5 -
collectors/python.d.plugin/boinc/metadata.yaml | 321 +-
collectors/python.d.plugin/boinc/metrics.csv | 5 -
collectors/python.d.plugin/ceph/metadata.yaml | 385 +-
collectors/python.d.plugin/ceph/metrics.csv | 16 -
.../python.d.plugin/changefinder/metadata.yaml | 155 +-
.../python.d.plugin/changefinder/metrics.csv | 3 -
collectors/python.d.plugin/dovecot/metadata.yaml | 351 +-
collectors/python.d.plugin/dovecot/metrics.csv | 13 -
collectors/python.d.plugin/example/metadata.yaml | 138 +
collectors/python.d.plugin/exim/metadata.yaml | 202 +-
collectors/python.d.plugin/exim/metrics.csv | 2 -
collectors/python.d.plugin/fail2ban/metadata.yaml | 262 +-
collectors/python.d.plugin/fail2ban/metrics.csv | 4 -
collectors/python.d.plugin/gearman/gearman.conf | 5 +-
collectors/python.d.plugin/gearman/metadata.yaml | 255 +-
collectors/python.d.plugin/gearman/metrics.csv | 3 -
collectors/python.d.plugin/go_expvar/metadata.yaml | 426 +-
collectors/python.d.plugin/go_expvar/metrics.csv | 8 -
collectors/python.d.plugin/haproxy/metadata.yaml | 576 ++-
collectors/python.d.plugin/haproxy/metrics.csv | 31 -
collectors/python.d.plugin/hddtemp/metadata.yaml | 233 +-
collectors/python.d.plugin/hddtemp/metrics.csv | 2 -
collectors/python.d.plugin/hpssa/metadata.yaml | 272 +-
collectors/python.d.plugin/hpssa/metrics.csv | 6 -
collectors/python.d.plugin/icecast/metadata.yaml | 197 +-
collectors/python.d.plugin/icecast/metrics.csv | 2 -
collectors/python.d.plugin/ipfs/metadata.yaml | 268 +-
collectors/python.d.plugin/ipfs/metrics.csv | 5 -
collectors/python.d.plugin/litespeed/metadata.yaml | 290 +-
collectors/python.d.plugin/litespeed/metrics.csv | 10 -
collectors/python.d.plugin/megacli/metadata.yaml | 311 +-
collectors/python.d.plugin/megacli/metrics.csv | 6 -
collectors/python.d.plugin/memcached/metadata.yaml | 420 +-
collectors/python.d.plugin/memcached/metrics.csv | 15 -
collectors/python.d.plugin/monit/metadata.yaml | 353 +-
collectors/python.d.plugin/monit/metrics.csv | 13 -
collectors/python.d.plugin/nsd/metadata.yaml | 320 +-
collectors/python.d.plugin/nsd/metrics.csv | 7 -
.../python.d.plugin/nvidia_smi/metadata.yaml | 329 +-
collectors/python.d.plugin/nvidia_smi/metrics.csv | 16 -
.../python.d.plugin/nvidia_smi/nvidia_smi.chart.py | 40 +-
collectors/python.d.plugin/openldap/metadata.yaml | 339 +-
collectors/python.d.plugin/openldap/metrics.csv | 8 -
collectors/python.d.plugin/oracledb/metadata.yaml | 523 +-
collectors/python.d.plugin/oracledb/metrics.csv | 23 -
collectors/python.d.plugin/pandas/metadata.yaml | 310 ++
collectors/python.d.plugin/pandas/pandas.conf | 4 +-
collectors/python.d.plugin/postfix/metadata.yaml | 200 +-
collectors/python.d.plugin/postfix/metrics.csv | 3 -
collectors/python.d.plugin/puppet/metadata.yaml | 276 +-
collectors/python.d.plugin/puppet/metrics.csv | 5 -
.../python.d.plugin/rethinkdbs/metadata.yaml | 307 +-
collectors/python.d.plugin/rethinkdbs/metrics.csv | 9 -
.../python.d.plugin/retroshare/metadata.yaml | 233 +-
collectors/python.d.plugin/retroshare/metrics.csv | 4 -
collectors/python.d.plugin/riakkv/metadata.yaml | 656 +--
collectors/python.d.plugin/riakkv/metrics.csv | 26 -
collectors/python.d.plugin/samba/metadata.yaml | 317 +-
collectors/python.d.plugin/samba/metrics.csv | 8 -
collectors/python.d.plugin/sensors/metadata.yaml | 281 +-
collectors/python.d.plugin/sensors/metrics.csv | 8 -
.../python.d.plugin/smartd_log/metadata.yaml | 703 ++-
collectors/python.d.plugin/smartd_log/metrics.csv | 36 -
collectors/python.d.plugin/spigotmc/metadata.yaml | 262 +-
collectors/python.d.plugin/spigotmc/metrics.csv | 4 -
collectors/python.d.plugin/squid/metadata.yaml | 268 +-
collectors/python.d.plugin/squid/metrics.csv | 5 -
collectors/python.d.plugin/tomcat/metadata.yaml | 327 +-
collectors/python.d.plugin/tomcat/metrics.csv | 9 -
collectors/python.d.plugin/tor/metadata.yaml | 211 +-
collectors/python.d.plugin/tor/metrics.csv | 2 -
collectors/python.d.plugin/traefik/metadata.yaml | 247 +-
collectors/python.d.plugin/traefik/metrics.csv | 9 -
collectors/python.d.plugin/uwsgi/metadata.yaml | 313 +-
collectors/python.d.plugin/uwsgi/metrics.csv | 9 -
collectors/python.d.plugin/varnish/metadata.yaml | 443 +-
collectors/python.d.plugin/varnish/metrics.csv | 18 -
collectors/python.d.plugin/w1sensor/metadata.yaml | 189 +-
collectors/python.d.plugin/w1sensor/metrics.csv | 2 -
collectors/python.d.plugin/w1sensor/w1sensor.conf | 2 +-
collectors/python.d.plugin/zscores/metadata.yaml | 262 +-
collectors/python.d.plugin/zscores/metrics.csv | 3 -
collectors/slabinfo.plugin/metadata.yaml | 187 +-
collectors/slabinfo.plugin/metrics.csv | 4 -
collectors/systemd-journal.plugin/Makefile.am | 11 +
collectors/systemd-journal.plugin/README.md | 0
.../systemd-journal.plugin/systemd-journal.c | 584 +++
collectors/tc.plugin/metadata.yaml | 215 +-
collectors/tc.plugin/metrics.csv | 6 -
collectors/timex.plugin/metadata.yaml | 200 +-
collectors/timex.plugin/metrics.csv | 4 -
collectors/xenstat.plugin/metadata.yaml | 374 +-
collectors/xenstat.plugin/metrics.csv | 16 -
configure.ac | 42 +
contrib/debian/control | 14 +-
contrib/debian/control.xenial | 61 -
.../debian/netdata-plugin-systemd-journal.postinst | 14 +
.../debian/netdata-plugin-systemd-journal.preinst | 13 +
contrib/debian/rules | 8 +
daemon/README.md | 2 +-
daemon/anonymous-statistics.sh.in | 18 +
daemon/buildinfo.c | 2 +-
daemon/commands.c | 8 +-
daemon/daemon.c | 26 +-
daemon/daemon.h | 3 +-
daemon/main.c | 3 +
daemon/static_threads.c | 9 +
daemon/system-info.sh | 2 +-
database/contexts/api_v1.c | 12 +-
database/contexts/api_v2.c | 25 +-
database/contexts/context.c | 125 +-
database/contexts/internal.h | 4 +
database/contexts/query_target.c | 3 +-
database/contexts/rrdcontext.h | 1 +
database/contexts/worker.c | 7 +
database/engine/journalfile.c | 2 +-
database/engine/metric.c | 20 +-
database/engine/metric.h | 2 +-
database/engine/rrdengineapi.c | 2 +-
database/rrd.h | 4 +-
database/rrdcalc.c | 12 +-
database/rrdfunctions.c | 32 +-
database/sqlite/sqlite_aclk_alert.c | 13 +-
database/sqlite/sqlite_db_migration.c | 17 +-
database/sqlite/sqlite_functions.c | 36 +-
database/sqlite/sqlite_health.c | 275 +-
database/sqlite/sqlite_health.h | 3 +
diagrams/docs/Makefile | 18 +
diagrams/docs/deployment-parent.drawio | 94 +
diagrams/docs/deployment-parents.drawio | 175 +
diagrams/docs/deployment-standalone.drawio | 78 +
docs/anonymous-statistics.md | 2 +-
.../deployment-strategies.md | 208 +-
.../add-webhook-notification-configuration.md | 4 +-
docs/cloud/netdata-functions.md | 6 +-
docs/configure/common-changes.md | 2 +-
.../troubleshooting-agent-with-cloud-connection.md | 14 +-
exporting/aws_kinesis/metadata.yaml | 173 +
exporting/graphite/metadata.yaml | 212 +
exporting/json/metadata.yaml | 151 +
exporting/mongodb/metadata.yaml | 151 +
exporting/opentsdb/metadata.yaml | 176 +
exporting/prometheus/metadata.yaml | 436 ++
exporting/pubsub/metadata.yaml | 152 +
exporting/sample-metadata.yaml | 39 +
health/REFERENCE.md | 64 +-
health/health.c | 30 +-
health/health.d/bcache.conf | 4 +-
health/health.d/btrfs.conf | 9 +-
health/health.d/cgroups.conf | 155 +-
health/health.d/cpu.conf | 10 +-
health/health.d/disks.conf | 87 +-
health/health.d/file_descriptors.conf | 10 +-
health/health.d/ioping.conf | 2 +-
health/health.d/ipmi.conf | 2 +-
health/health.d/linux_power_supply.conf | 2 +-
health/health.d/load.conf | 6 +-
health/health.d/mdstat.conf | 16 +-
health/health.d/memory.conf | 63 +-
health/health.d/net.conf | 20 +-
health/health.d/qos.conf | 21 +-
health/health.d/ram.conf | 7 +-
health/health.d/softnet.conf | 4 +-
health/health.d/swap.conf | 6 +-
health/health.d/synchronization.conf | 2 +-
health/health.d/systemdunits.conf | 10 +
health/health.d/tcp_listen.conf | 8 +-
health/health.d/tcp_mem.conf | 2 +-
health/health.d/tcp_orphans.conf | 2 +-
health/health.d/tcp_resets.conf | 4 +-
health/health.d/udp_errors.conf | 4 +-
health/health.d/windows.conf | 10 +-
health/health.d/zfs.conf | 2 +-
health/health.h | 1 +
health/health_log.c | 2 +
health/notifications/alerta/metadata.yaml | 90 +
health/notifications/awssns/metadata.yaml | 137 +
health/notifications/custom/metadata.yaml | 169 +
health/notifications/discord/metadata.yaml | 76 +
health/notifications/dynatrace/metadata.yaml | 92 +
health/notifications/email/metadata.yaml | 73 +
health/notifications/flock/metadata.yaml | 72 +
health/notifications/gotify/metadata.yaml | 60 +
health/notifications/irc/metadata.yaml | 100 +
health/notifications/kavenegar/metadata.yaml | 82 +
health/notifications/matrix/metadata.yaml | 91 +
health/notifications/messagebird/metadata.yaml | 79 +
health/notifications/msteams/metadata.yaml | 79 +
health/notifications/ntfy/metadata.yaml | 70 +
health/notifications/opsgenie/metadata.yaml | 60 +
health/notifications/pagerduty/metadata.yaml | 73 +
health/notifications/prowl/metadata.yaml | 71 +
health/notifications/pushbullet/metadata.yaml | 76 +
health/notifications/pushover/metadata.yaml | 78 +
health/notifications/rocketchat/metadata.yaml | 75 +
health/notifications/sample-metadata.yaml | 39 +
health/notifications/slack/metadata.yaml | 63 +
health/notifications/smstools3/metadata.yaml | 84 +
health/notifications/syslog/metadata.yaml | 88 +
health/notifications/telegram/metadata.yaml | 77 +
health/notifications/twilio/metadata.yaml | 83 +
integrations/README.md | 26 +
integrations/categories.yaml | 304 +-
integrations/check_collector_metadata.py | 89 +
integrations/cloud-notifications/metadata.yaml | 519 ++
integrations/deploy.yaml | 578 +++
integrations/gen_integrations.py | 628 +++
integrations/integrations.js | 5 +
integrations/schemas/categories.json | 55 +
integrations/schemas/collector.json | 411 ++
integrations/schemas/deploy.json | 116 +
integrations/schemas/distros.json | 153 +
integrations/schemas/exporter.json | 63 +
integrations/schemas/notification.json | 87 +
integrations/schemas/shared.json | 327 ++
integrations/templates/README.md | 27 +
integrations/templates/alerts.md | 14 +
integrations/templates/integrations.js | 6 +
integrations/templates/metrics.md | 49 +
integrations/templates/overview.md | 7 +
integrations/templates/overview/collector.md | 67 +
integrations/templates/overview/exporter.md | 9 +
integrations/templates/overview/notification.md | 9 +
integrations/templates/platform_info.md | 9 +
integrations/templates/related_resources.md | 7 +
integrations/templates/setup.md | 108 +
integrations/templates/setup/sample-apps-config.md | 41 +
.../templates/setup/sample-charts-config.md | 6 +
integrations/templates/setup/sample-go-config.md | 9 +
.../templates/setup/sample-netdata-config.md | 10 +
.../templates/setup/sample-python-config.md | 10 +
integrations/templates/troubleshooting.md | 92 +
libnetdata/Makefile.am | 1 +
libnetdata/buffer/buffer.c | 13 +-
libnetdata/buffer/buffer.h | 94 +-
libnetdata/dyn_conf/dyn_conf.c | 909 ++++
libnetdata/dyn_conf/dyn_conf.h | 136 +
libnetdata/ebpf/ebpf.h | 28 +-
libnetdata/facets/Makefile.am | 8 +
libnetdata/facets/README.md | 0
libnetdata/facets/facets.c | 851 ++++
libnetdata/facets/facets.h | 62 +
libnetdata/http/http_defs.h | 8 +
libnetdata/inlined.h | 23 +-
libnetdata/libnetdata.c | 134 +-
libnetdata/libnetdata.h | 12 +-
libnetdata/socket/socket.h | 30 +-
libnetdata/url/url.c | 2 +-
libnetdata/worker_utilization/worker_utilization.h | 2 +-
netdata-installer.sh | 16 +
netdata.spec.in | 47 +-
packaging/PLATFORM_SUPPORT.md | 15 +-
packaging/docker/run.sh | 5 +-
packaging/ebpf-co-re.checksums | 2 +-
packaging/ebpf-co-re.version | 2 +-
packaging/ebpf.checksums | 6 +-
packaging/ebpf.version | 2 +-
packaging/go.d.checksums | 34 +-
packaging/go.d.version | 2 +-
packaging/installer/README.md | 12 +-
packaging/installer/UPDATE.md | 3 +
packaging/installer/dependencies/centos.sh | 27 +-
packaging/installer/dependencies/clearlinux.sh | 19 +-
packaging/installer/dependencies/debian.sh | 31 +-
packaging/installer/dependencies/fedora.sh | 29 +-
packaging/installer/dependencies/ol.sh | 29 +-
packaging/installer/dependencies/opensuse.sh | 33 +-
packaging/installer/dependencies/rockylinux.sh | 27 +-
packaging/installer/dependencies/ubuntu.sh | 33 +-
packaging/installer/install-required-packages.sh | 14 +
packaging/installer/kickstart.sh | 52 +-
packaging/installer/methods/kickstart.md | 4 +-
packaging/installer/methods/macos.md | 4 +-
packaging/installer/netdata-updater.sh | 59 +-
packaging/makeself/jobs/99-makeself.install.sh | 6 +
packaging/version | 2 +-
registry/registry.c | 7 +-
spawn/spawn.c | 6 +-
system/edit-config | 6 +
system/netdata-updater.conf | 14 +
.../alarm_repetition/netdata.conf_with_repetition | 2 +-
.../netdata.conf_without_repetition | 2 +-
web/api/badges/README.md | 2 +-
web/api/badges/web_buffer_svg.c | 4 +-
web/api/formatters/json_wrapper.c | 4 +-
web/api/formatters/rrd2json.h | 2 -
web/api/queries/incremental_sum/incremental_sum.h | 28 +-
web/api/queries/query.c | 102 +-
web/api/queries/rrdr.h | 2 -
web/api/queries/weights.c | 14 +-
web/api/web_api.c | 46 +-
web/api/web_api.h | 17 +-
web/api/web_api_v1.c | 59 +-
web/api/web_api_v2.c | 136 +-
web/gui/README.md | 11 +-
web/gui/dashboard_info.js | 18 +-
web/gui/index.html | 159 +-
web/gui/registry-access.html | 12 +-
web/gui/registry-hello.html | 2 +-
web/gui/v2/102.17aa0264e26dca186379.chunk.js | 1 -
web/gui/v2/102.dc7f30189e6e1105143b.chunk.js | 1 +
web/gui/v2/129.59192a62539648e72a38.chunk.js | 1 +
web/gui/v2/137.de2e733f582f64cad1cf.chunk.js | 1 -
web/gui/v2/147.dcf17e31c752be5e1c60.chunk.js | 1 +
web/gui/v2/18.c0d35b9d3651f2926247.chunk.js | 2 -
web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js | 2 +
.../18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt | 19 +
web/gui/v2/193.94e6e52842fb25d00193.chunk.js | 1 +
web/gui/v2/193.9784069d084ddfe4fc58.chunk.js | 1 -
web/gui/v2/20.8e903ddcd231de612dd1.chunk.js | 1 -
web/gui/v2/20.a271e6cfa915fdaf3602.chunk.js | 1 +
web/gui/v2/241.9c26252244ccad9ac280.chunk.js | 1 +
web/gui/v2/241.ceb939c3439523e12eed.chunk.js | 1 -
web/gui/v2/252.0ce2558c909b9913ec26.chunk.js | 1 -
web/gui/v2/252.ecac74e9755e6d96573c.chunk.js | 1 +
web/gui/v2/264.a5876f358dd6972563d5.chunk.js | 1 +
web/gui/v2/27.384da655707f4c3b6153.css | 2 +
web/gui/v2/27.922062ec65b1e01389ee.chunk.js | 2 +
.../27.922062ec65b1e01389ee.chunk.js.LICENSE.txt | 5 +
web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js | 1 +
web/gui/v2/282.8b52e573f86730f801fc.chunk.js | 1 +
web/gui/v2/282.b554eb54189aafeebb91.chunk.js | 1 -
web/gui/v2/296.debf8c655d29ffce5deb.chunk.js | 1 -
web/gui/v2/324.4fc60bcaa065dab2898f.chunk.js | 1 +
web/gui/v2/359.117da1c355c991bc1536.chunk.js | 1 -
web/gui/v2/359.fde431aadc6dd872d1b3.chunk.js | 1 +
web/gui/v2/360.035df4a77480670d5715.chunk.js | 1 +
web/gui/v2/360.fad154c858b78a20d8f5.chunk.js | 1 -
web/gui/v2/367.cf3f661f1c7bdb62b59b.chunk.js | 1 -
web/gui/v2/370.384da655707f4c3b6153.css | 2 -
web/gui/v2/370.b325df5122104f76cd4f.chunk.js | 2 -
web/gui/v2/376.9a81f019e3c71e29c4e1.js | 2 +
web/gui/v2/376.9a81f019e3c71e29c4e1.js.LICENSE.txt | 160 +
web/gui/v2/376.ce2d4577bc3aaaa82b0c.js | 2 -
web/gui/v2/380.b8d7517354695cf1a14b.chunk.js | 1 -
web/gui/v2/380.ccb665950325037c0dda.css | 6 -
web/gui/v2/3D_PARTY_LICENSES.txt | 36 +
web/gui/v2/427.acd538b4ce317d11342e.chunk.js | 1 +
web/gui/v2/427.ccb665950325037c0dda.css | 6 +
web/gui/v2/43.178b68b4bde3a2876bd8.chunk.js | 1 +
web/gui/v2/43.e139da6e48a4308e3cf9.chunk.js | 1 -
web/gui/v2/440.82afa1467d7c5912d8a3.chunk.js | 1 -
web/gui/v2/442.5189af01dfd7a61ba40e.chunk.js | 1 -
web/gui/v2/447.d73a7051f850d9257b12.chunk.js | 1 +
web/gui/v2/451.c12c367c27438b213814.chunk.js | 1 +
web/gui/v2/451.f9d139bad9fab4ae284e.chunk.js | 1 -
web/gui/v2/470.66f8d3453ba22aaf59a4.chunk.js | 1 -
web/gui/v2/470.f28faa6be4559491ed1e.chunk.js | 1 +
web/gui/v2/471.6c89d0196ad91bf90026.chunk.js | 1 -
web/gui/v2/502.9438cab3c9c41c42ed57.chunk.js | 1 +
web/gui/v2/510.d6163fa8dc978bbb2b42.chunk.js | 1 +
web/gui/v2/510.fe83a8e48e12c14f8a0d.chunk.js | 1 -
web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js | 2 +
.../514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt | 20 +
web/gui/v2/514.ec684ba16b52bc75806a.chunk.js | 2 -
web/gui/v2/533.bf2c24b99df0c8f8a234.chunk.js | 1 +
web/gui/v2/533.fce31f51b4cd0d80431f.chunk.js | 1 -
web/gui/v2/564.22a72ae2b4d5c2e659a1.chunk.js | 1 +
web/gui/v2/564.cfb9f016d7ca91bf1f08.chunk.js | 1 -
web/gui/v2/575.66c199aa3d69cf00c3f2.chunk.js | 2 -
web/gui/v2/575.9daac2298d0395fdf183.chunk.js | 2 +
.../575.9daac2298d0395fdf183.chunk.js.LICENSE.txt | 3 +
web/gui/v2/597.5d5a03215ae545861922.chunk.js | 1 +
web/gui/v2/597.e016f0724a013f625e39.chunk.js | 1 -
web/gui/v2/610.6152d96681e6cfc6f2a2.chunk.js | 1 -
web/gui/v2/610.d671813e159356dd5674.chunk.js | 1 +
web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js | 1 +
web/gui/v2/655.67b53d6b6e9d27b4a42f.chunk.js | 1 -
web/gui/v2/655.e9a4b596ea0a5d9c7bff.chunk.js | 1 +
web/gui/v2/663.08e4639637c3d8f77b7c.chunk.js | 1 +
web/gui/v2/663.4d152adafa970bb87d62.chunk.js | 2 -
web/gui/v2/709.b63f3383f748847da537.chunk.js | 1 -
web/gui/v2/714.b3173197d7dc5e16cc3e.chunk.js | 1 -
web/gui/v2/722.fe99e9077a2c17b765b6.chunk.js | 1 -
web/gui/v2/723.5cbb8237ca47fb280150.chunk.js | 1 +
web/gui/v2/723.71890dcc2eb1733f246f.chunk.js | 1 -
web/gui/v2/765.abdc73e99f918c4200a8.chunk.js | 1 +
web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js | 1 +
web/gui/v2/817.6e7799a5b5165571e3aa.chunk.js | 1 -
web/gui/v2/817.883beafccc77faf546a2.chunk.js | 1 +
web/gui/v2/837.457977c0c92687b5bf08.chunk.js | 1 +
web/gui/v2/837.935d02101181aff72447.chunk.js | 1 -
web/gui/v2/851.590f9e758e12dbe1bb25.chunk.js | 1 -
web/gui/v2/851.c2d4621d872e935ac44a.chunk.js | 1 +
web/gui/v2/86.5e866a98fcb6e62687d3.chunk.js | 1 +
web/gui/v2/86.9f4a6baa2ee824be04cc.chunk.js | 1 -
web/gui/v2/934.32aedee30124d08593f8.chunk.js | 1 -
web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js | 1 +
web/gui/v2/952.fd601224f55afda56157.chunk.js | 2 +
.../952.fd601224f55afda56157.chunk.js.LICENSE.txt | 15 +
web/gui/v2/969.4369033ce0ca17cd78e2.chunk.js | 1 -
web/gui/v2/969.888044e63adb99d3626d.chunk.js | 1 +
web/gui/v2/977.96e2ff6feb44e920b79e.chunk.js | 1 +
web/gui/v2/Makefile.am | 108 +-
web/gui/v2/agent.html | 159 +-
web/gui/v2/allFiles.6.27.0.json | 298 ++
web/gui/v2/allFiles.6.json | 298 ++
web/gui/v2/app.24424bcb6923064df250.js | 1 +
web/gui/v2/app.6ab19a21fbb78d48c8f6.js | 1 -
web/gui/v2/bundlesManifest.6.json | 8 +-
web/gui/v2/editor.0483213ccc286f86f266.chunk.js | 1 +
web/gui/v2/editor.a3a8ebf852f1b5b77f53.chunk.js | 1 -
web/gui/v2/index.html | 159 +-
web/gui/v2/local-agent.html | 159 +-
web/gui/v2/npm.react.dom.512b66551e07201cd4f2.js | 2 -
web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js | 2 +
...m.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt | 9 +
web/gui/v2/registry-access.html | 12 +-
web/gui/v2/registry-hello.html | 2 +-
web/gui/v2/runtime.9143995e93765a6faefd.js | 1 -
web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js | 1 +
web/gui/v2/sw.js | 2 +-
web/rtc/webrtc.c | 2 +-
web/server/README.md | 2 +-
web/server/h2o/http_server.c | 4 +
web/server/web_client.c | 25 +-
web/server/web_client.h | 2 +
548 files changed, 44904 insertions(+), 25184 deletions(-)
create mode 100644 .github/workflows/generate-integrations.yml
create mode 100644 .vscode/settings.default.json
create mode 100644 collectors/apps.plugin/metadata.yaml
delete mode 100644 collectors/apps.plugin/metrics.csv
delete mode 100644 collectors/apps.plugin/multi_metadata.yaml
create mode 100644 collectors/cgroups.plugin/metadata.yaml
delete mode 100644 collectors/cgroups.plugin/metrics.csv
delete mode 100644 collectors/cgroups.plugin/multi_metadata.yaml
delete mode 100644 collectors/charts.d.plugin/ap/metrics.csv
delete mode 100644 collectors/charts.d.plugin/apcupsd/metrics.csv
delete mode 100644 collectors/charts.d.plugin/libreswan/metrics.csv
delete mode 100644 collectors/charts.d.plugin/nut/metrics.csv
delete mode 100644 collectors/charts.d.plugin/opensips/metrics.csv
delete mode 100644 collectors/charts.d.plugin/sensors/metrics.csv
delete mode 100644 collectors/cups.plugin/metrics.csv
create mode 100644 collectors/debugfs.plugin/metadata.yaml
delete mode 100644 collectors/debugfs.plugin/metrics.csv
delete mode 100644 collectors/debugfs.plugin/multi_metadata.yaml
create mode 100644 collectors/debugfs.plugin/sys_devices_virtual_powercap.c
delete mode 100644 collectors/diskspace.plugin/metrics.csv
create mode 100644 collectors/ebpf.plugin/metadata.yaml
delete mode 100644 collectors/ebpf.plugin/metrics.csv
delete mode 100644 collectors/ebpf.plugin/multi_metadata.yaml
create mode 100644 collectors/freebsd.plugin/metadata.yaml
delete mode 100644 collectors/freebsd.plugin/metrics.csv
delete mode 100644 collectors/freebsd.plugin/multi_metadata.yaml
create mode 100644 collectors/freeipmi.plugin/metadata.yaml
delete mode 100644 collectors/freeipmi.plugin/metrics.csv
delete mode 100644 collectors/freeipmi.plugin/multi_metadata.yaml
delete mode 100644 collectors/idlejitter.plugin/metrics.csv
delete mode 100644 collectors/ioping.plugin/metrics.csv
create mode 100644 collectors/macos.plugin/metadata.yaml
delete mode 100644 collectors/macos.plugin/metrics.csv
delete mode 100644 collectors/macos.plugin/multi_metadata.yaml
delete mode 100644 collectors/metadata/schemas/multi-module.json
delete mode 100644 collectors/metadata/schemas/single-module.json
delete mode 100644 collectors/metadata/single-module-template.yaml
delete mode 100644 collectors/nfacct.plugin/metrics.csv
delete mode 100644 collectors/perf.plugin/metrics.csv
create mode 100644 collectors/proc.plugin/metadata.yaml
delete mode 100644 collectors/proc.plugin/metrics.csv
delete mode 100644 collectors/proc.plugin/multi_metadata.yaml
create mode 100644 collectors/proc.plugin/sys_class_drm.c
create mode 100644 collectors/proc.plugin/sys_devices_pci_aer.c
delete mode 100644 collectors/python.d.plugin/adaptec_raid/metrics.csv
delete mode 100644 collectors/python.d.plugin/alarms/metrics.csv
delete mode 100644 collectors/python.d.plugin/am2320/metrics.csv
delete mode 100644 collectors/python.d.plugin/anomalies/metrics.csv
delete mode 100644 collectors/python.d.plugin/beanstalk/metrics.csv
delete mode 100644 collectors/python.d.plugin/bind_rndc/metrics.csv
delete mode 100644 collectors/python.d.plugin/boinc/metrics.csv
delete mode 100644 collectors/python.d.plugin/ceph/metrics.csv
delete mode 100644 collectors/python.d.plugin/changefinder/metrics.csv
delete mode 100644 collectors/python.d.plugin/dovecot/metrics.csv
create mode 100644 collectors/python.d.plugin/example/metadata.yaml
delete mode 100644 collectors/python.d.plugin/exim/metrics.csv
delete mode 100644 collectors/python.d.plugin/fail2ban/metrics.csv
delete mode 100644 collectors/python.d.plugin/gearman/metrics.csv
delete mode 100644 collectors/python.d.plugin/go_expvar/metrics.csv
delete mode 100644 collectors/python.d.plugin/haproxy/metrics.csv
delete mode 100644 collectors/python.d.plugin/hddtemp/metrics.csv
delete mode 100644 collectors/python.d.plugin/hpssa/metrics.csv
delete mode 100644 collectors/python.d.plugin/icecast/metrics.csv
delete mode 100644 collectors/python.d.plugin/ipfs/metrics.csv
delete mode 100644 collectors/python.d.plugin/litespeed/metrics.csv
delete mode 100644 collectors/python.d.plugin/megacli/metrics.csv
delete mode 100644 collectors/python.d.plugin/memcached/metrics.csv
delete mode 100644 collectors/python.d.plugin/monit/metrics.csv
delete mode 100644 collectors/python.d.plugin/nsd/metrics.csv
delete mode 100644 collectors/python.d.plugin/nvidia_smi/metrics.csv
delete mode 100644 collectors/python.d.plugin/openldap/metrics.csv
delete mode 100644 collectors/python.d.plugin/oracledb/metrics.csv
create mode 100644 collectors/python.d.plugin/pandas/metadata.yaml
delete mode 100644 collectors/python.d.plugin/postfix/metrics.csv
delete mode 100644 collectors/python.d.plugin/puppet/metrics.csv
delete mode 100644 collectors/python.d.plugin/rethinkdbs/metrics.csv
delete mode 100644 collectors/python.d.plugin/retroshare/metrics.csv
delete mode 100644 collectors/python.d.plugin/riakkv/metrics.csv
delete mode 100644 collectors/python.d.plugin/samba/metrics.csv
delete mode 100644 collectors/python.d.plugin/sensors/metrics.csv
delete mode 100644 collectors/python.d.plugin/smartd_log/metrics.csv
delete mode 100644 collectors/python.d.plugin/spigotmc/metrics.csv
delete mode 100644 collectors/python.d.plugin/squid/metrics.csv
delete mode 100644 collectors/python.d.plugin/tomcat/metrics.csv
delete mode 100644 collectors/python.d.plugin/tor/metrics.csv
delete mode 100644 collectors/python.d.plugin/traefik/metrics.csv
delete mode 100644 collectors/python.d.plugin/uwsgi/metrics.csv
delete mode 100644 collectors/python.d.plugin/varnish/metrics.csv
delete mode 100644 collectors/python.d.plugin/w1sensor/metrics.csv
delete mode 100644 collectors/python.d.plugin/zscores/metrics.csv
delete mode 100644 collectors/slabinfo.plugin/metrics.csv
create mode 100644 collectors/systemd-journal.plugin/Makefile.am
create mode 100644 collectors/systemd-journal.plugin/README.md
create mode 100644 collectors/systemd-journal.plugin/systemd-journal.c
delete mode 100644 collectors/tc.plugin/metrics.csv
delete mode 100644 collectors/timex.plugin/metrics.csv
delete mode 100644 collectors/xenstat.plugin/metrics.csv
delete mode 100644 contrib/debian/control.xenial
create mode 100644 contrib/debian/netdata-plugin-systemd-journal.postinst
create mode 100644 contrib/debian/netdata-plugin-systemd-journal.preinst
create mode 100644 diagrams/docs/Makefile
create mode 100644 diagrams/docs/deployment-parent.drawio
create mode 100644 diagrams/docs/deployment-parents.drawio
create mode 100644 diagrams/docs/deployment-standalone.drawio
create mode 100644 exporting/aws_kinesis/metadata.yaml
create mode 100644 exporting/graphite/metadata.yaml
create mode 100644 exporting/json/metadata.yaml
create mode 100644 exporting/mongodb/metadata.yaml
create mode 100644 exporting/opentsdb/metadata.yaml
create mode 100644 exporting/prometheus/metadata.yaml
create mode 100644 exporting/pubsub/metadata.yaml
create mode 100644 exporting/sample-metadata.yaml
create mode 100644 health/notifications/alerta/metadata.yaml
create mode 100644 health/notifications/awssns/metadata.yaml
create mode 100644 health/notifications/custom/metadata.yaml
create mode 100644 health/notifications/discord/metadata.yaml
create mode 100644 health/notifications/dynatrace/metadata.yaml
create mode 100644 health/notifications/email/metadata.yaml
create mode 100644 health/notifications/flock/metadata.yaml
create mode 100644 health/notifications/gotify/metadata.yaml
create mode 100644 health/notifications/irc/metadata.yaml
create mode 100644 health/notifications/kavenegar/metadata.yaml
create mode 100644 health/notifications/matrix/metadata.yaml
create mode 100644 health/notifications/messagebird/metadata.yaml
create mode 100644 health/notifications/msteams/metadata.yaml
create mode 100644 health/notifications/ntfy/metadata.yaml
create mode 100644 health/notifications/opsgenie/metadata.yaml
create mode 100644 health/notifications/pagerduty/metadata.yaml
create mode 100644 health/notifications/prowl/metadata.yaml
create mode 100644 health/notifications/pushbullet/metadata.yaml
create mode 100644 health/notifications/pushover/metadata.yaml
create mode 100644 health/notifications/rocketchat/metadata.yaml
create mode 100644 health/notifications/sample-metadata.yaml
create mode 100644 health/notifications/slack/metadata.yaml
create mode 100644 health/notifications/smstools3/metadata.yaml
create mode 100644 health/notifications/syslog/metadata.yaml
create mode 100644 health/notifications/telegram/metadata.yaml
create mode 100644 health/notifications/twilio/metadata.yaml
create mode 100644 integrations/README.md
create mode 100755 integrations/check_collector_metadata.py
create mode 100644 integrations/cloud-notifications/metadata.yaml
create mode 100644 integrations/deploy.yaml
create mode 100755 integrations/gen_integrations.py
create mode 100644 integrations/integrations.js
create mode 100644 integrations/schemas/categories.json
create mode 100644 integrations/schemas/collector.json
create mode 100644 integrations/schemas/deploy.json
create mode 100644 integrations/schemas/distros.json
create mode 100644 integrations/schemas/exporter.json
create mode 100644 integrations/schemas/notification.json
create mode 100644 integrations/schemas/shared.json
create mode 100644 integrations/templates/README.md
create mode 100644 integrations/templates/alerts.md
create mode 100644 integrations/templates/integrations.js
create mode 100644 integrations/templates/metrics.md
create mode 100644 integrations/templates/overview.md
create mode 100644 integrations/templates/overview/collector.md
create mode 100644 integrations/templates/overview/exporter.md
create mode 100644 integrations/templates/overview/notification.md
create mode 100644 integrations/templates/platform_info.md
create mode 100644 integrations/templates/related_resources.md
create mode 100644 integrations/templates/setup.md
create mode 100644 integrations/templates/setup/sample-apps-config.md
create mode 100644 integrations/templates/setup/sample-charts-config.md
create mode 100644 integrations/templates/setup/sample-go-config.md
create mode 100644 integrations/templates/setup/sample-netdata-config.md
create mode 100644 integrations/templates/setup/sample-python-config.md
create mode 100644 integrations/templates/troubleshooting.md
create mode 100644 libnetdata/dyn_conf/dyn_conf.c
create mode 100644 libnetdata/dyn_conf/dyn_conf.h
create mode 100644 libnetdata/facets/Makefile.am
create mode 100644 libnetdata/facets/README.md
create mode 100644 libnetdata/facets/facets.c
create mode 100644 libnetdata/facets/facets.h
delete mode 100644 web/gui/v2/102.17aa0264e26dca186379.chunk.js
create mode 100644 web/gui/v2/102.dc7f30189e6e1105143b.chunk.js
create mode 100644 web/gui/v2/129.59192a62539648e72a38.chunk.js
delete mode 100644 web/gui/v2/137.de2e733f582f64cad1cf.chunk.js
create mode 100644 web/gui/v2/147.dcf17e31c752be5e1c60.chunk.js
delete mode 100644 web/gui/v2/18.c0d35b9d3651f2926247.chunk.js
create mode 100644 web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js
create mode 100644 web/gui/v2/18.d27b3a3f82b13e4e31b5.chunk.js.LICENSE.txt
create mode 100644 web/gui/v2/193.94e6e52842fb25d00193.chunk.js
delete mode 100644 web/gui/v2/193.9784069d084ddfe4fc58.chunk.js
delete mode 100644 web/gui/v2/20.8e903ddcd231de612dd1.chunk.js
create mode 100644 web/gui/v2/20.a271e6cfa915fdaf3602.chunk.js
create mode 100644 web/gui/v2/241.9c26252244ccad9ac280.chunk.js
delete mode 100644 web/gui/v2/241.ceb939c3439523e12eed.chunk.js
delete mode 100644 web/gui/v2/252.0ce2558c909b9913ec26.chunk.js
create mode 100644 web/gui/v2/252.ecac74e9755e6d96573c.chunk.js
create mode 100644 web/gui/v2/264.a5876f358dd6972563d5.chunk.js
create mode 100644 web/gui/v2/27.384da655707f4c3b6153.css
create mode 100644 web/gui/v2/27.922062ec65b1e01389ee.chunk.js
create mode 100644 web/gui/v2/27.922062ec65b1e01389ee.chunk.js.LICENSE.txt
create mode 100644 web/gui/v2/277.93f8d8d191859a1c59dc.chunk.js
create mode 100644 web/gui/v2/282.8b52e573f86730f801fc.chunk.js
delete mode 100644 web/gui/v2/282.b554eb54189aafeebb91.chunk.js
delete mode 100644 web/gui/v2/296.debf8c655d29ffce5deb.chunk.js
create mode 100644 web/gui/v2/324.4fc60bcaa065dab2898f.chunk.js
delete mode 100644 web/gui/v2/359.117da1c355c991bc1536.chunk.js
create mode 100644 web/gui/v2/359.fde431aadc6dd872d1b3.chunk.js
create mode 100644 web/gui/v2/360.035df4a77480670d5715.chunk.js
delete mode 100644 web/gui/v2/360.fad154c858b78a20d8f5.chunk.js
delete mode 100644 web/gui/v2/367.cf3f661f1c7bdb62b59b.chunk.js
delete mode 100644 web/gui/v2/370.384da655707f4c3b6153.css
delete mode 100644 web/gui/v2/370.b325df5122104f76cd4f.chunk.js
create mode 100644 web/gui/v2/376.9a81f019e3c71e29c4e1.js
create mode 100644 web/gui/v2/376.9a81f019e3c71e29c4e1.js.LICENSE.txt
delete mode 100644 web/gui/v2/376.ce2d4577bc3aaaa82b0c.js
delete mode 100644 web/gui/v2/380.b8d7517354695cf1a14b.chunk.js
delete mode 100644 web/gui/v2/380.ccb665950325037c0dda.css
create mode 100644 web/gui/v2/427.acd538b4ce317d11342e.chunk.js
create mode 100644 web/gui/v2/427.ccb665950325037c0dda.css
create mode 100644 web/gui/v2/43.178b68b4bde3a2876bd8.chunk.js
delete mode 100644 web/gui/v2/43.e139da6e48a4308e3cf9.chunk.js
delete mode 100644 web/gui/v2/440.82afa1467d7c5912d8a3.chunk.js
delete mode 100644 web/gui/v2/442.5189af01dfd7a61ba40e.chunk.js
create mode 100644 web/gui/v2/447.d73a7051f850d9257b12.chunk.js
create mode 100644 web/gui/v2/451.c12c367c27438b213814.chunk.js
delete mode 100644 web/gui/v2/451.f9d139bad9fab4ae284e.chunk.js
delete mode 100644 web/gui/v2/470.66f8d3453ba22aaf59a4.chunk.js
create mode 100644 web/gui/v2/470.f28faa6be4559491ed1e.chunk.js
delete mode 100644 web/gui/v2/471.6c89d0196ad91bf90026.chunk.js
create mode 100644 web/gui/v2/502.9438cab3c9c41c42ed57.chunk.js
create mode 100644 web/gui/v2/510.d6163fa8dc978bbb2b42.chunk.js
delete mode 100644 web/gui/v2/510.fe83a8e48e12c14f8a0d.chunk.js
create mode 100644 web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js
create mode 100644 web/gui/v2/514.58ab6c1ac3b8af2f0016.chunk.js.LICENSE.txt
delete mode 100644 web/gui/v2/514.ec684ba16b52bc75806a.chunk.js
create mode 100644 web/gui/v2/533.bf2c24b99df0c8f8a234.chunk.js
delete mode 100644 web/gui/v2/533.fce31f51b4cd0d80431f.chunk.js
create mode 100644 web/gui/v2/564.22a72ae2b4d5c2e659a1.chunk.js
delete mode 100644 web/gui/v2/564.cfb9f016d7ca91bf1f08.chunk.js
delete mode 100644 web/gui/v2/575.66c199aa3d69cf00c3f2.chunk.js
create mode 100644 web/gui/v2/575.9daac2298d0395fdf183.chunk.js
create mode 100644 web/gui/v2/575.9daac2298d0395fdf183.chunk.js.LICENSE.txt
create mode 100644 web/gui/v2/597.5d5a03215ae545861922.chunk.js
delete mode 100644 web/gui/v2/597.e016f0724a013f625e39.chunk.js
delete mode 100644 web/gui/v2/610.6152d96681e6cfc6f2a2.chunk.js
create mode 100644 web/gui/v2/610.d671813e159356dd5674.chunk.js
create mode 100644 web/gui/v2/654.89446e8c7a0b8bba60ba.chunk.js
delete mode 100644 web/gui/v2/655.67b53d6b6e9d27b4a42f.chunk.js
create mode 100644 web/gui/v2/655.e9a4b596ea0a5d9c7bff.chunk.js
create mode 100644 web/gui/v2/663.08e4639637c3d8f77b7c.chunk.js
delete mode 100644 web/gui/v2/663.4d152adafa970bb87d62.chunk.js
delete mode 100644 web/gui/v2/709.b63f3383f748847da537.chunk.js
delete mode 100644 web/gui/v2/714.b3173197d7dc5e16cc3e.chunk.js
delete mode 100644 web/gui/v2/722.fe99e9077a2c17b765b6.chunk.js
create mode 100644 web/gui/v2/723.5cbb8237ca47fb280150.chunk.js
delete mode 100644 web/gui/v2/723.71890dcc2eb1733f246f.chunk.js
create mode 100644 web/gui/v2/765.abdc73e99f918c4200a8.chunk.js
create mode 100644 web/gui/v2/814.bfc6d4650c1097dc56eb.chunk.js
delete mode 100644 web/gui/v2/817.6e7799a5b5165571e3aa.chunk.js
create mode 100644 web/gui/v2/817.883beafccc77faf546a2.chunk.js
create mode 100644 web/gui/v2/837.457977c0c92687b5bf08.chunk.js
delete mode 100644 web/gui/v2/837.935d02101181aff72447.chunk.js
delete mode 100644 web/gui/v2/851.590f9e758e12dbe1bb25.chunk.js
create mode 100644 web/gui/v2/851.c2d4621d872e935ac44a.chunk.js
create mode 100644 web/gui/v2/86.5e866a98fcb6e62687d3.chunk.js
delete mode 100644 web/gui/v2/86.9f4a6baa2ee824be04cc.chunk.js
delete mode 100644 web/gui/v2/934.32aedee30124d08593f8.chunk.js
create mode 100644 web/gui/v2/934.9dc27c5ebc538bddabb3.chunk.js
create mode 100644 web/gui/v2/952.fd601224f55afda56157.chunk.js
create mode 100644 web/gui/v2/952.fd601224f55afda56157.chunk.js.LICENSE.txt
delete mode 100644 web/gui/v2/969.4369033ce0ca17cd78e2.chunk.js
create mode 100644 web/gui/v2/969.888044e63adb99d3626d.chunk.js
create mode 100644 web/gui/v2/977.96e2ff6feb44e920b79e.chunk.js
create mode 100644 web/gui/v2/allFiles.6.27.0.json
create mode 100644 web/gui/v2/allFiles.6.json
create mode 100644 web/gui/v2/app.24424bcb6923064df250.js
delete mode 100644 web/gui/v2/app.6ab19a21fbb78d48c8f6.js
create mode 100644 web/gui/v2/editor.0483213ccc286f86f266.chunk.js
delete mode 100644 web/gui/v2/editor.a3a8ebf852f1b5b77f53.chunk.js
delete mode 100644 web/gui/v2/npm.react.dom.512b66551e07201cd4f2.js
create mode 100644 web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js
create mode 100644 web/gui/v2/npm.react.dom.fcbeaa7a1582a429a00e.js.LICENSE.txt
delete mode 100644 web/gui/v2/runtime.9143995e93765a6faefd.js
create mode 100644 web/gui/v2/runtime.db3b1f7db7a8e8ecf561.js
diff --git a/.codacy.yml b/.codacy.yml
index f4fd5d6d2..a358bf927 100644
--- a/.codacy.yml
+++ b/.codacy.yml
@@ -10,6 +10,7 @@ exclude_paths:
- web/gui/lib/**
- web/gui/old/**
- web/gui/src/**
+ - web/gui/v2/**
- web/gui/main.js
- tests/**
- aclk/tests/**
diff --git a/.eslintignore b/.eslintignore
index d827e89b4..403f271fa 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,3 +1,4 @@
**/*{.,-}min.js
+integrations/*
web/gui/v1/*
web/gui/v2/*
diff --git a/.github/data/distros.yml b/.github/data/distros.yml
index 8376b1f03..827378502 100644
--- a/.github/data/distros.yml
+++ b/.github/data/distros.yml
@@ -20,6 +20,8 @@ include:
- &alpine
distro: alpine
version: edge
+ support_type: Community
+ notes: ''
eol_check: false
env_prep: |
apk add -U bash
@@ -27,18 +29,31 @@ include:
apk del json-c-dev
test:
ebpf-core: true
+ - <<: *alpine
+ version: "3.18"
+ support_type: Core
+ notes: ''
+ eol_check: true
- <<: *alpine
version: "3.17"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- <<: *alpine
version: "3.16"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- <<: *alpine
version: "3.15"
+ support_type: Intermediate
+ notes: ''
eol_check: true
- distro: archlinux
version: latest
+ support_type: Intermediate
+ notes: ''
eol_check: false
env_prep: |
pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi
@@ -48,6 +63,8 @@ include:
- &alma
distro: almalinux
version: "9"
+ support_type: Core
+ notes: ''
jsonc_removal: |
dnf remove -y json-c-devel
eol_check: true
@@ -74,6 +91,8 @@ include:
- &amzn
distro: amazonlinux
version: "2"
+ support_type: Core
+ notes: ''
eol_check: 'amazon-linux'
packages: &amzn_packages
type: rpm
@@ -92,6 +111,8 @@ include:
- distro: centos
version: "7"
+ support_type: Core
+ notes: ''
eol_check: false
packages:
type: rpm
@@ -107,6 +128,8 @@ include:
- &debian
distro: debian
version: "12"
+ support_type: Core
+ notes: ''
base_image: debian:bookworm
eol_check: true
env_prep: |
@@ -143,6 +166,8 @@ include:
- &fedora
distro: fedora
version: "38"
+ support_type: Core
+ notes: ''
eol_check: true
jsonc_removal: |
dnf remove -y json-c-devel
@@ -164,27 +189,25 @@ include:
- &opensuse
distro: opensuse
- version: "tumbleweed"
+ version: "15.5"
+ support_type: Core
+ notes: ''
eol_check: true
- base_image: opensuse/tumbleweed
+ base_image: opensuse/leap:15.5
jsonc_removal: |
zypper rm -y libjson-c-devel
packages: &opensuse_packages
type: rpm
- repo_distro: opensuse/tumbleweed
+ repo_distro: opensuse/leap:15.4
arches:
- x86_64
- aarch64
test:
ebpf-core: true
- - <<: *opensuse
- version: "15.5"
- base_image: opensuse/leap:15.5
- packages:
- <<: *opensuse_packages
- repo_distro: opensuse/15.5
- <<: *opensuse
version: "15.4"
+ support_type: Core
+ notes: ''
base_image: opensuse/leap:15.4
packages:
<<: *opensuse_packages
@@ -193,6 +216,8 @@ include:
- &oracle
distro: oraclelinux
version: "8"
+ support_type: Core
+ notes: ''
eol_check: true
jsonc_removal: |
dnf remove -y json-c-devel
@@ -212,7 +237,9 @@ include:
- &ubuntu
distro: ubuntu
- version: "22.10"
+ version: "22.04"
+ support_type: Core
+ notes: ''
eol_check: true
env_prep: |
rm -f /etc/apt/apt.conf.d/docker && apt-get update
@@ -220,7 +247,7 @@ include:
apt-get remove -y libjson-c-dev
packages: &ubuntu_packages
type: deb
- repo_distro: ubuntu/kinetic
+ repo_distro: ubuntu/jammy
arches:
- amd64
- armhf
@@ -232,13 +259,63 @@ include:
packages:
<<: *ubuntu_packages
repo_distro: ubuntu/lunar
- - <<: *ubuntu
- version: "22.04"
- packages:
- <<: *ubuntu_packages
- repo_distro: ubuntu/jammy
- <<: *ubuntu
version: "20.04"
packages:
<<: *ubuntu_packages
repo_distro: ubuntu/focal
+no_include: # Info for platforms not covered in CI
+ - distro: docker
+ version: "19.03 or newer"
+ support_type: Core
+ notes: ''
+ packages:
+ arches:
+ - linux/i386
+ - linux/amd64
+ - linux/arm/v7
+ - linux/arm64
+ - linux/ppc64le
+
+ - distro: clearlinux
+ version: latest
+ support_type: Community
+ notes: ''
+
+ - &rhel
+ distro: rhel
+ version: "9.x"
+ support_type: Core
+ notes: ''
+ packages:
+ arches:
+ - x86_64
+ - aarch64
+ - <<: *rhel
+ version: "8.x"
+ - <<: *rhel
+ version: "7.x"
+ packages:
+ arches:
+ - x86_64
+
+ - &freebsd
+ distro: freebsd
+ version: 13-STABLE
+ support_type: Community
+ notes: ''
+
+ - &macos
+ distro: macos
+ version: '13'
+ support_type: Community
+ notes: ''
+ - <<: *macos
+ version: '12'
+ - <<: *macos
+ version: '11'
+
+ - distro: gentoo
+ version: latest
+ support_type: Community
+ notes: ''
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 44c493b10..1dd4d472a 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -11,8 +11,7 @@
# Please keep the labels sorted and deduplicated.
area/ACLK:
- - aclk/*
- - aclk/**/*
+ - aclk/**
- database/sqlite/sqlite_aclk*
- mqtt_websockets
@@ -20,169 +19,137 @@ area/claim:
- claim/*
area/exporting:
- - exporting/*
- - exporting/**/*
+ - exporting/**
area/build:
- - build/*
- - build/**/*
- - build_external/*
- - build_external/**/*
+ - build/**
+ - build_external/**
- CMakeLists.txt
- configure.ac
- Makefile.am
- "**/Makefile.am"
area/ci:
- - .github/*
- - .github/**/*
+ - .github/**
area/daemon:
- - daemon/*
- - daemon/**/*
+ - daemon/**
area/database:
- - database/*
- - database/**/*
+ - database/**
area/docs:
- "*.md"
- "**/*.md"
- "**/*.mdx"
- - diagrams/*
- - diagrams/**/*
+ - diagrams/**
# -----------------collectors----------------------
area/collectors:
- - collectors/*
- - collectors/**/*
+ - collectors/**
collectors/plugins.d:
- - collectors/plugins.d/*
- - collectors/plugins.d/**/*
+ - collectors/plugins.d/**
collectors/apps:
- - collectors/apps.plugin/*
- - collectors/apps.plugin/**/*
+ - collectors/apps.plugin/**
collectors/cgroups:
- - collectors/cgroups.plugin/*
- - collectors/cgroups.plugin/**/*
+ - collectors/cgroups.plugin/**
collectors/charts.d:
- - collectors/charts.d.plugin/*
- - collectors/charts.d.plugin/**/*
+ - collectors/charts.d.plugin/**
collectors/cups:
- - collectors/cups.plugin/*
- - collectors/cups.plugin/**/*
+ - collectors/cups.plugin/**
collectors/debugfs:
- - collectors/debugfs.plugin/*
- - collectors/debugfs.plugin/**/*
+ - collectors/debugfs.plugin/**
collectors/diskspace:
- - collectors/diskspace.plugin/*
- - collectors/diskspace.plugin/**/*
+ - collectors/diskspace.plugin/**
collectors/ebpf:
- - collectors/ebpf.plugin/*
- - collectors/ebpf.plugin/**/*
+ - collectors/ebpf.plugin/**
collectors/freebsd:
- - collectors/freebsd.plugin/*
- - collectors/freebsd.plugin/**/*
+ - collectors/freebsd.plugin/**
collectors/freeipmi:
- - collectors/freeipmi.plugin/*
- - collectors/freeipmi.plugin/**/*
+ - collectors/freeipmi.plugin/**
collectors/idlejitter:
- - collectors/idlejitter.plugin/*
- - collectors/idlejitter.plugin/**/*
+ - collectors/idlejitter.plugin/**
collectors/ioping:
- - collectors/ioping.plugin/*
- - collectors/ioping.plugin/**/*
+ - collectors/ioping.plugin/**
collectors/macos:
- - collectors/macos.plugin/*
- - collectors/macos.plugin/**/*
+ - collectors/macos.plugin/**
collectors/nfacct:
- - collectors/nfacct.plugin/*
- - collectors/nfacct.plugin/**/*
+ - collectors/nfacct.plugin/**
collectors/perf:
- - collectors/perf.plugin/*
- - collectors/perf.plugin/**/*
+ - collectors/perf.plugin/**
collectors/proc:
- - collectors/proc.plugin/*
- - collectors/proc.plugin/**/*
+ - collectors/proc.plugin/**
collectors/python.d:
- - collectors/python.d.plugin/*
- - collectors/python.d.plugin/**/*
+ - collectors/python.d.plugin/**
collectors/slabinfo:
- - collectors/slabinfo.plugin/*
- - collectors/slabinfo.plugin/**/*
+ - collectors/slabinfo.plugin/**
collectors/statsd:
- - collectors/statsd.plugin/*
- - collectors/statsd.plugin/**/*
+ - collectors/statsd.plugin/**
+
+collectors/systemd-journal:
+ - collectors/systemd-journal.plugin/**
collectors/tc:
- - collectors/tc.plugin/*
- - collectors/tc.plugin/**/*
+ - collectors/tc.plugin/**
collectors/timex:
- - collectors/timex.plugin/*
- - collectors/timex.plugin/**/*
+ - collectors/timex.plugin/**
collectors/xenstat:
- - collectors/xenstat.plugin/*
- - collectors/xenstat.plugin/**/*
+ - collectors/xenstat.plugin/**
# ----------------/collectors----------------------
area/health:
- - health/*
- - health/**/*
+ - health/**
+
+area/metadata:
+ - "**/*metadata.yaml"
+ - integrations/**
area/ml:
- - ml/*
- - ml/**/*
+ - ml/**
area/packaging:
- - contrib/*
- - contrib/**/*
- - packaging/*
- - packaging/**/*
- - system/*
- - system/**/*
+ - contrib/**
+ - packaging/**
+ - system/**
- Dockerfile*
- netdata-installer.sh
- netdata.spec.in
area/registry:
- - registry/*
- - registry/**/*
+ - registry/**
area/streaming:
- - streaming/*
- - streaming/**/*
+ - streaming/**
area/tests:
- - tests/*
- - tests/**/*
+ - tests/**
- daemon/unit_test*
- coverity-scan.sh
- cppcheck.sh
- netdata.cppcheck
area/web:
- - web/*
- - web/**/*
+ - web/**
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 114eb2c53..012f75ac5 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -519,6 +519,7 @@ jobs:
mv ../static-archive/* . || exit 1
ln -s ${{ needs.build-dist.outputs.distfile }} netdata-latest.tar.gz || exit 1
cp ../packaging/version ./latest-version.txt || exit 1
+ cp ../integrations/integrations.js ./integrations.js || exit 1
sha256sum -b ./* > sha256sums.txt || exit 1
cat sha256sums.txt
- name: Store Artifacts
@@ -753,7 +754,7 @@ jobs:
with:
allowUpdates: false
artifactErrorsFailBuild: true
- artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run'
+ artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run,final-artifacts/integrations.js'
owner: netdata
repo: netdata-nightlies
body: Netdata nightly build for ${{ steps.version.outputs.date }}.
@@ -823,7 +824,7 @@ jobs:
with:
allowUpdates: false
artifactErrorsFailBuild: true
- artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run'
+ artifacts: 'final-artifacts/sha256sums.txt,final-artifacts/netdata-*.tar.gz,final-artifacts/netdata-*.gz.run,final-artifacts/integrations.js'
draft: true
tag: ${{ needs.normalize-tag.outputs.tag }}
token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
diff --git a/.github/workflows/generate-integrations.yml b/.github/workflows/generate-integrations.yml
new file mode 100644
index 000000000..599cefbc0
--- /dev/null
+++ b/.github/workflows/generate-integrations.yml
@@ -0,0 +1,98 @@
+---
+# CI workflow used to regenerate `integrations/integrations.js` when
+# relevant source files are changed.
+name: Generate Integrations
+on:
+ push:
+ branches:
+ - master
+ paths: # If any of these files change, we need to regenerate integrations.js.
+ - 'collectors/**/metadata.yaml'
+ - 'exporting/**/metadata.yaml'
+ - 'health/notifications/**/metadata.yaml'
+ - 'integrations/templates/**'
+ - 'integrations/categories.yaml'
+ - 'integrations/deploy.yaml'
+ - 'integrations/cloud-notifications/metadata.yaml'
+ - 'integrations/gen_integrations.py'
+ - 'packaging/go.d.version'
+ workflow_dispatch: null
+concurrency: # This keeps multiple instances of the job from running concurrently for the same ref.
+ group: integrations-${{ github.ref }}
+ cancel-in-progress: true
+jobs:
+ generate-integrations:
+ name: Generate Integrations
+ runs-on: ubuntu-latest
+ if: github.repository == 'netdata/netdata'
+ steps:
+ - name: Checkout Agent
+ id: checkout-agent
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ submodules: recursive
+ - name: Get Go Ref
+ id: get-go-ref
+ run: echo "go_ref=$(cat packaging/go.d.version)" >> "${GITHUB_ENV}"
+ - name: Checkout Go
+ id: checkout-go
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ path: go.d.plugin
+ repository: netdata/go.d.plugin
+ ref: ${{ env.go_ref }}
+ - name: Prepare Dependencies
+ id: prep-deps
+ run: |
+ sudo apt-get install python3-venv
+ python3 -m venv ./virtualenv
+ source ./virtualenv/bin/activate
+ pip install jsonschema referencing jinja2 ruamel.yaml
+ - name: Generate Integrations
+ id: generate
+ run: |
+ source ./virtualenv/bin/activate
+ python3 integrations/gen_integrations.py
+ - name: Clean Up Temporary Data
+ id: clean
+ run: rm -rf go.d.plugin virtualenv
+ - name: Create PR
+ id: create-pr
+ uses: peter-evans/create-pull-request@v5
+ with:
+ token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
+ commit-message: Regenerate integrations.js
+ branch: integrations-regen
+ title: Regenerate integrations.js
+ body: |
+ Regenerate `integrations/integrations.js` based on the
+ latest code.
+
+ This PR was auto-generated by
+ `.github/workflows/generate-integrations.yml`.
+ - name: Failure Notification
+ uses: rtCamp/action-slack-notify@v2
+ env:
+ SLACK_COLOR: 'danger'
+ SLACK_FOOTER: ''
+ SLACK_ICON_EMOJI: ':github-actions:'
+ SLACK_TITLE: 'Integrations regeneration failed:'
+ SLACK_USERNAME: 'GitHub Actions'
+ SLACK_MESSAGE: |-
+ ${{ github.repository }}: Failed to create PR rebuilding integrations.js
+ Checkout Agent: ${{ steps.checkout-agent.outcome }}
+ Get Go Ref: ${{ steps.get-go-ref.outcome }}
+ Checkout Go: ${{ steps.checkout-go.outcome }}
+ Prepare Dependencies: ${{ steps.prep-deps.outcome }}
+ Generate Integrations: ${{ steps.generate.outcome }}
+ Clean Up Temporary Data: ${{ steps.clean.outcome }}
+ Create PR: ${{ steps.create-pr.outcome }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
+ if: >-
+ ${{
+ failure()
+ && startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
+ }}
diff --git a/.github/workflows/review.yml b/.github/workflows/review.yml
index 6a580afa6..7e76717ed 100644
--- a/.github/workflows/review.yml
+++ b/.github/workflows/review.yml
@@ -54,7 +54,7 @@ jobs:
run: |
if [ "${{ contains(github.event.pull_request.labels.*.name, 'run-ci/eslint') }}" = "true" ]; then
echo "run=true" >> "${GITHUB_OUTPUT}"
- elif git diff --name-only origin/${{ github.base_ref }} HEAD | grep -v "web/gui/v1" | grep -v "web/gui/v2" | grep -Eq '.*\.js|node\.d\.plugin\.in' ; then
+ elif git diff --name-only origin/${{ github.base_ref }} HEAD | grep -v "web/gui/v1" | grep -v "web/gui/v2" | grep -v "integrations/" | grep -Eq '.*\.js' ; then
echo "run=true" >> "${GITHUB_OUTPUT}"
echo 'JS files have changed, need to run ESLint.'
else
diff --git a/.gitignore b/.gitignore
index fa93d96fe..daa55c030 100644
--- a/.gitignore
+++ b/.gitignore
@@ -80,6 +80,9 @@ collectors/ebpf.plugin/includes/
debugfs.plugin
!debugfs.plugin/
+systemd-journal.plugin
+!systemd-journal.plugin/
+
# protoc generated files
*.pb.cc
*.pb.h
@@ -99,7 +102,8 @@ netdata-coverity-analysis.tgz
.cproject/
.idea/
-.vscode/
+.vscode/*
+!.vscode/settings.default.json
.project/
.settings/
README
diff --git a/.vscode/settings.default.json b/.vscode/settings.default.json
new file mode 100644
index 000000000..c610af594
--- /dev/null
+++ b/.vscode/settings.default.json
@@ -0,0 +1,10 @@
+{
+ "yaml.schemas": {
+ "./integrations/schemas/collector.json": "/collectors/*/metadata.yaml",
+ "./integrations/schemas/exporter.json": "/exporting/*/metadata.yaml",
+ "./integrations/schemas/notification.json": "/health/notifications/*/metadata.yaml",
+ "./integrations/schemas/categories.json": "/integrations/categories.yaml",
+ "./integrations/schemas/deploy.json": "/integrations/deploy.yaml",
+ "./integrations/schemas/distros.json": "/.github/data/distros.yml"
+ }
+}
diff --git a/.yamllint.yml b/.yamllint.yml
index b05de2062..f9c871859 100644
--- a/.yamllint.yml
+++ b/.yamllint.yml
@@ -23,11 +23,7 @@ rules:
empty-values: enable
hyphens: enable
indentation: enable
- line-length:
- max: 150
- level: warning
- allow-non-breakable-words: true
- allow-non-breakable-inline-mappings: true
+ line-length: disable
key-duplicates: enable
key-ordering: disable
new-line-at-end-of-file: enable
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9a42aa4c2..e1fe6d576 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,262 @@
# Changelog
+## [v1.42.0](https://github.com/netdata/netdata/tree/v1.42.0) (2023-08-09)
+
+[Full Changelog](https://github.com/netdata/netdata/compare/v1.41.0...v1.42.0)
+
+**Merged pull requests:**
+
+- ci: codacy exclude web/gui/v2/ [\#15780](https://github.com/netdata/netdata/pull/15780) ([ilyam8](https://github.com/ilyam8))
+- update UI to v6.27.0 [\#15778](https://github.com/netdata/netdata/pull/15778) ([ilyam8](https://github.com/ilyam8))
+- ci: fix labeler area/docs [\#15776](https://github.com/netdata/netdata/pull/15776) ([ilyam8](https://github.com/ilyam8))
+- fix claiming via UI for static build [\#15774](https://github.com/netdata/netdata/pull/15774) ([ilyam8](https://github.com/ilyam8))
+- extend the trimming window to avoid empty points at the end of queries [\#15773](https://github.com/netdata/netdata/pull/15773) ([ktsaou](https://github.com/ktsaou))
+- Regenerate integrations.js [\#15772](https://github.com/netdata/netdata/pull/15772) ([netdatabot](https://github.com/netdatabot))
+- Change FreeBSD / macOS system.swap\(io\) to mem.swap\(io\) [\#15769](https://github.com/netdata/netdata/pull/15769) ([Dim-P](https://github.com/Dim-P))
+- update ui to v6.26.3 [\#15767](https://github.com/netdata/netdata/pull/15767) ([ilyam8](https://github.com/ilyam8))
+- Fix CID 398318 [\#15766](https://github.com/netdata/netdata/pull/15766) ([underhood](https://github.com/underhood))
+- Fix coverity issues introduced via drm proc module [\#15765](https://github.com/netdata/netdata/pull/15765) ([Dim-P](https://github.com/Dim-P))
+- Regenerate integrations.js [\#15764](https://github.com/netdata/netdata/pull/15764) ([netdatabot](https://github.com/netdatabot))
+- meta update proc drm icon [\#15763](https://github.com/netdata/netdata/pull/15763) ([ilyam8](https://github.com/ilyam8))
+- Update metadata.yaml [\#15762](https://github.com/netdata/netdata/pull/15762) ([ktsaou](https://github.com/ktsaou))
+- Update metadata.yaml [\#15761](https://github.com/netdata/netdata/pull/15761) ([ktsaou](https://github.com/ktsaou))
+- Regenerate integrations.js [\#15760](https://github.com/netdata/netdata/pull/15760) ([netdatabot](https://github.com/netdatabot))
+- fix nvidia\_smi power\_readings for new drivers [\#15759](https://github.com/netdata/netdata/pull/15759) ([ilyam8](https://github.com/ilyam8))
+- update bundled UI to v2.26.2 [\#15758](https://github.com/netdata/netdata/pull/15758) ([ilyam8](https://github.com/ilyam8))
+- Regenerate integrations.js [\#15751](https://github.com/netdata/netdata/pull/15751) ([netdatabot](https://github.com/netdatabot))
+- ci labeler: remove integrations from area/docs [\#15750](https://github.com/netdata/netdata/pull/15750) ([ilyam8](https://github.com/ilyam8))
+- meta: align left metrics, alerts, and config options [\#15749](https://github.com/netdata/netdata/pull/15749) ([ilyam8](https://github.com/ilyam8))
+- Add dependencies for systemd journal plugin. [\#15747](https://github.com/netdata/netdata/pull/15747) ([Ferroin](https://github.com/Ferroin))
+- prefer cap over setuid for sysetmd-journal in installer [\#15741](https://github.com/netdata/netdata/pull/15741) ([ilyam8](https://github.com/ilyam8))
+- \[cloud-blocker\] https\_client add TLS ext. SNI + support chunked transfer encoding [\#15739](https://github.com/netdata/netdata/pull/15739) ([underhood](https://github.com/underhood))
+- Don't overwrite my vscode settings! [\#15738](https://github.com/netdata/netdata/pull/15738) ([underhood](https://github.com/underhood))
+- faster facets and journal fixes [\#15737](https://github.com/netdata/netdata/pull/15737) ([ktsaou](https://github.com/ktsaou))
+- Adjust namespace used for sd\_journal\_open [\#15736](https://github.com/netdata/netdata/pull/15736) ([stelfrag](https://github.com/stelfrag))
+- Update to latest copy of v2 dashboard. [\#15735](https://github.com/netdata/netdata/pull/15735) ([Ferroin](https://github.com/Ferroin))
+- Add netdata-plugin-systemd-journal package. [\#15733](https://github.com/netdata/netdata/pull/15733) ([Ferroin](https://github.com/Ferroin))
+- proc.plugin: dont log if pressure/irq does not exist [\#15732](https://github.com/netdata/netdata/pull/15732) ([ilyam8](https://github.com/ilyam8))
+- ci: run "Generate Integrations" only in netdata/netdata [\#15731](https://github.com/netdata/netdata/pull/15731) ([ilyam8](https://github.com/ilyam8))
+- Regenerate integrations.js [\#15728](https://github.com/netdata/netdata/pull/15728) ([netdatabot](https://github.com/netdatabot))
+- fix systemd-journal makefile [\#15727](https://github.com/netdata/netdata/pull/15727) ([ktsaou](https://github.com/ktsaou))
+- disable systemdunits alarms [\#15726](https://github.com/netdata/netdata/pull/15726) ([ilyam8](https://github.com/ilyam8))
+- Fix memory corruption [\#15724](https://github.com/netdata/netdata/pull/15724) ([stelfrag](https://github.com/stelfrag))
+- Revert "Refactor RRD code. \(\#15423\)" [\#15723](https://github.com/netdata/netdata/pull/15723) ([vkalintiris](https://github.com/vkalintiris))
+- Changes to the templates for integrations [\#15721](https://github.com/netdata/netdata/pull/15721) ([Ancairon](https://github.com/Ancairon))
+- fix the freez pointer of dyncfg [\#15719](https://github.com/netdata/netdata/pull/15719) ([ktsaou](https://github.com/ktsaou))
+- Update the bundled v2 dashboard to the latest release. [\#15718](https://github.com/netdata/netdata/pull/15718) ([Ferroin](https://github.com/Ferroin))
+- Regenerate integrations.js [\#15717](https://github.com/netdata/netdata/pull/15717) ([netdatabot](https://github.com/netdatabot))
+- fix meta deploy docker swarm NC env var [\#15716](https://github.com/netdata/netdata/pull/15716) ([ilyam8](https://github.com/ilyam8))
+- Regenerate integrations.js [\#15713](https://github.com/netdata/netdata/pull/15713) ([netdatabot](https://github.com/netdatabot))
+- Update metadata.yaml [\#15710](https://github.com/netdata/netdata/pull/15710) ([sashwathn](https://github.com/sashwathn))
+- Regenerate integrations.js [\#15709](https://github.com/netdata/netdata/pull/15709) ([netdatabot](https://github.com/netdatabot))
+- integrations: fix docker compose indent [\#15708](https://github.com/netdata/netdata/pull/15708) ([ilyam8](https://github.com/ilyam8))
+- Better cleanup of aclk alert table entries [\#15706](https://github.com/netdata/netdata/pull/15706) ([MrZammler](https://github.com/MrZammler))
+- Regenerate integrations.js [\#15705](https://github.com/netdata/netdata/pull/15705) ([netdatabot](https://github.com/netdatabot))
+- Fix typo in categories for beanstalk collector metadata. [\#15703](https://github.com/netdata/netdata/pull/15703) ([Ferroin](https://github.com/Ferroin))
+- Assorted fixes for integrations templates. [\#15702](https://github.com/netdata/netdata/pull/15702) ([Ferroin](https://github.com/Ferroin))
+- integrations: fix metrics availability [\#15701](https://github.com/netdata/netdata/pull/15701) ([ilyam8](https://github.com/ilyam8))
+- Fix handling of troubleshooting section in integrations. [\#15700](https://github.com/netdata/netdata/pull/15700) ([Ferroin](https://github.com/Ferroin))
+- update vscode yaml schemas association [\#15697](https://github.com/netdata/netdata/pull/15697) ([ilyam8](https://github.com/ilyam8))
+- Update categories.yaml [\#15696](https://github.com/netdata/netdata/pull/15696) ([sashwathn](https://github.com/sashwathn))
+- Regenerate integrations.js [\#15695](https://github.com/netdata/netdata/pull/15695) ([netdatabot](https://github.com/netdatabot))
+- Extend eBPF default shutdown [\#15694](https://github.com/netdata/netdata/pull/15694) ([thiagoftsm](https://github.com/thiagoftsm))
+- Fix integrations regen workflow [\#15693](https://github.com/netdata/netdata/pull/15693) ([Ferroin](https://github.com/Ferroin))
+- bump go.d.plugin v0.54.1 [\#15692](https://github.com/netdata/netdata/pull/15692) ([ilyam8](https://github.com/ilyam8))
+- Update names [\#15691](https://github.com/netdata/netdata/pull/15691) ([thiagoftsm](https://github.com/thiagoftsm))
+- Update metadata.yaml [\#15690](https://github.com/netdata/netdata/pull/15690) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15689](https://github.com/netdata/netdata/pull/15689) ([sashwathn](https://github.com/sashwathn))
+- Update metadata.yaml [\#15688](https://github.com/netdata/netdata/pull/15688) ([sashwathn](https://github.com/sashwathn))
+- Update deploy.yaml [\#15687](https://github.com/netdata/netdata/pull/15687) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15686](https://github.com/netdata/netdata/pull/15686) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15685](https://github.com/netdata/netdata/pull/15685) ([sashwathn](https://github.com/sashwathn))
+- Update metadata.yaml [\#15684](https://github.com/netdata/netdata/pull/15684) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15683](https://github.com/netdata/netdata/pull/15683) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15682](https://github.com/netdata/netdata/pull/15682) ([sashwathn](https://github.com/sashwathn))
+- Update categories.yaml [\#15681](https://github.com/netdata/netdata/pull/15681) ([sashwathn](https://github.com/sashwathn))
+- Update metadata.yaml [\#15680](https://github.com/netdata/netdata/pull/15680) ([sashwathn](https://github.com/sashwathn))
+- Update metadata.yaml [\#15679](https://github.com/netdata/netdata/pull/15679) ([shyamvalsan](https://github.com/shyamvalsan))
+- Update metadata.yaml [\#15678](https://github.com/netdata/netdata/pull/15678) ([sashwathn](https://github.com/sashwathn))
+- Update Webhook icon [\#15677](https://github.com/netdata/netdata/pull/15677) ([sashwathn](https://github.com/sashwathn))
+- Update deploy.yaml to fix Docker and Kubernetes commands [\#15676](https://github.com/netdata/netdata/pull/15676) ([sashwathn](https://github.com/sashwathn))
+- meta MacOS =\> macOS [\#15675](https://github.com/netdata/netdata/pull/15675) ([ilyam8](https://github.com/ilyam8))
+- Adapt Cloud notifications to the new schema [\#15674](https://github.com/netdata/netdata/pull/15674) ([sashwathn](https://github.com/sashwathn))
+- Fix formatting [\#15673](https://github.com/netdata/netdata/pull/15673) ([shyamvalsan](https://github.com/shyamvalsan))
+- Fixing tables \(aws sns\) [\#15671](https://github.com/netdata/netdata/pull/15671) ([shyamvalsan](https://github.com/shyamvalsan))
+- Update metadata.yaml for Cloud Notifications [\#15670](https://github.com/netdata/netdata/pull/15670) ([sashwathn](https://github.com/sashwathn))
+- remove " Metrics" from linux categories [\#15669](https://github.com/netdata/netdata/pull/15669) ([ilyam8](https://github.com/ilyam8))
+- Fix table formatting \(custom exporter\) [\#15668](https://github.com/netdata/netdata/pull/15668) ([shyamvalsan](https://github.com/shyamvalsan))
+- Fix icon prometheus exporter icon [\#15666](https://github.com/netdata/netdata/pull/15666) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- freeipmi change restart message to info [\#15664](https://github.com/netdata/netdata/pull/15664) ([ilyam8](https://github.com/ilyam8))
+- fix proc.plugin meta filename [\#15659](https://github.com/netdata/netdata/pull/15659) ([ilyam8](https://github.com/ilyam8))
+- small improvements to README.md [\#15658](https://github.com/netdata/netdata/pull/15658) ([ilyam8](https://github.com/ilyam8))
+- Fix icon for solarwinds [\#15657](https://github.com/netdata/netdata/pull/15657) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Fix Apps plugin icons [\#15655](https://github.com/netdata/netdata/pull/15655) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- fix pandas category [\#15654](https://github.com/netdata/netdata/pull/15654) ([andrewm4894](https://github.com/andrewm4894))
+- Fix exporter icons [\#15652](https://github.com/netdata/netdata/pull/15652) ([shyamvalsan](https://github.com/shyamvalsan))
+- disable freeipmi in docker by default [\#15651](https://github.com/netdata/netdata/pull/15651) ([ilyam8](https://github.com/ilyam8))
+- Fixing FreeBSD icons [\#15650](https://github.com/netdata/netdata/pull/15650) ([shyamvalsan](https://github.com/shyamvalsan))
+- Fix exporter schema to support multiple entries per file. [\#15649](https://github.com/netdata/netdata/pull/15649) ([Ferroin](https://github.com/Ferroin))
+- Fixing icons in netdata/netdata repo [\#15647](https://github.com/netdata/netdata/pull/15647) ([shyamvalsan](https://github.com/shyamvalsan))
+- Fix name in the yaml of example python collector [\#15646](https://github.com/netdata/netdata/pull/15646) ([Ancairon](https://github.com/Ancairon))
+- Fix icons [\#15645](https://github.com/netdata/netdata/pull/15645) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Fix icons for notifications [\#15644](https://github.com/netdata/netdata/pull/15644) ([shyamvalsan](https://github.com/shyamvalsan))
+- convert collectors meta files from single to multi [\#15642](https://github.com/netdata/netdata/pull/15642) ([ilyam8](https://github.com/ilyam8))
+- fix edit-config for containerized Netdata when running from host [\#15641](https://github.com/netdata/netdata/pull/15641) ([ilyam8](https://github.com/ilyam8))
+- fix: 🐛 docker bind-mount stock files creation [\#15639](https://github.com/netdata/netdata/pull/15639) ([Leny1996](https://github.com/Leny1996))
+- The icon\_filename value was not in quotes - Fixed [\#15635](https://github.com/netdata/netdata/pull/15635) ([sashwathn](https://github.com/sashwathn))
+- Update graphite metadata.yaml [\#15634](https://github.com/netdata/netdata/pull/15634) ([shyamvalsan](https://github.com/shyamvalsan))
+- Debugfs yaml update [\#15633](https://github.com/netdata/netdata/pull/15633) ([thiagoftsm](https://github.com/thiagoftsm))
+- Update metadata.yaml [\#15632](https://github.com/netdata/netdata/pull/15632) ([shyamvalsan](https://github.com/shyamvalsan))
+- review images for integrations from security to windows systems [\#15630](https://github.com/netdata/netdata/pull/15630) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- bump ui to v6.23.0 [\#15629](https://github.com/netdata/netdata/pull/15629) ([ilyam8](https://github.com/ilyam8))
+- Updated Cloud Notification Integrations with the new schema [\#15628](https://github.com/netdata/netdata/pull/15628) ([sashwathn](https://github.com/sashwathn))
+- Add additional variable section to instance data in schema. [\#15627](https://github.com/netdata/netdata/pull/15627) ([Ferroin](https://github.com/Ferroin))
+- fix icons for message brokers and hardware [\#15626](https://github.com/netdata/netdata/pull/15626) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Add key for notifications to control what global config options get displayed [\#15625](https://github.com/netdata/netdata/pull/15625) ([Ferroin](https://github.com/Ferroin))
+- fix icons for webservers integrations [\#15624](https://github.com/netdata/netdata/pull/15624) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Add notification metadata for agent notifications [\#15622](https://github.com/netdata/netdata/pull/15622) ([shyamvalsan](https://github.com/shyamvalsan))
+- fix icons for db integrations [\#15621](https://github.com/netdata/netdata/pull/15621) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Rename multi\_metadata.yaml to metadata.yaml [\#15619](https://github.com/netdata/netdata/pull/15619) ([shyamvalsan](https://github.com/shyamvalsan))
+- Rename multi\_metadata.yaml to metadata.yaml [\#15618](https://github.com/netdata/netdata/pull/15618) ([shyamvalsan](https://github.com/shyamvalsan))
+- Fix up notification schema to better support cloud notifications. [\#15616](https://github.com/netdata/netdata/pull/15616) ([Ferroin](https://github.com/Ferroin))
+- Updated all cloud notifications except generic webhook [\#15615](https://github.com/netdata/netdata/pull/15615) ([sashwathn](https://github.com/sashwathn))
+- prefer titles, families, units and priorities from collected charts [\#15614](https://github.com/netdata/netdata/pull/15614) ([ktsaou](https://github.com/ktsaou))
+- Update categories.yaml to add notifications [\#15613](https://github.com/netdata/netdata/pull/15613) ([sashwathn](https://github.com/sashwathn))
+- ci disable yamllint line-length check [\#15612](https://github.com/netdata/netdata/pull/15612) ([ilyam8](https://github.com/ilyam8))
+- Fix descriptions in config objects, make them single line [\#15610](https://github.com/netdata/netdata/pull/15610) ([Ancairon](https://github.com/Ancairon))
+- Update icons [\#15609](https://github.com/netdata/netdata/pull/15609) ([shyamvalsan](https://github.com/shyamvalsan))
+- Update icon [\#15608](https://github.com/netdata/netdata/pull/15608) ([shyamvalsan](https://github.com/shyamvalsan))
+- Update icon [\#15607](https://github.com/netdata/netdata/pull/15607) ([shyamvalsan](https://github.com/shyamvalsan))
+- Update documentation [\#15606](https://github.com/netdata/netdata/pull/15606) ([kiela](https://github.com/kiela))
+- fix potential crash bug. [\#15605](https://github.com/netdata/netdata/pull/15605) ([icy17](https://github.com/icy17))
+- FreeBSD yaml update [\#15603](https://github.com/netdata/netdata/pull/15603) ([thiagoftsm](https://github.com/thiagoftsm))
+- Macos yaml update [\#15602](https://github.com/netdata/netdata/pull/15602) ([thiagoftsm](https://github.com/thiagoftsm))
+- minor changes in README.md [\#15601](https://github.com/netdata/netdata/pull/15601) ([tkatsoulas](https://github.com/tkatsoulas))
+- reviewed icos for a bunch of integrations [\#15599](https://github.com/netdata/netdata/pull/15599) ([hugovalente-pm](https://github.com/hugovalente-pm))
+- Sample Cloud Notifications metadata for Discord [\#15597](https://github.com/netdata/netdata/pull/15597) ([sashwathn](https://github.com/sashwathn))
+- Updated icons in deploy section [\#15596](https://github.com/netdata/netdata/pull/15596) ([shyamvalsan](https://github.com/shyamvalsan))
+- 10 points per query min [\#15595](https://github.com/netdata/netdata/pull/15595) ([ktsaou](https://github.com/ktsaou))
+- CUPS yaml update [\#15594](https://github.com/netdata/netdata/pull/15594) ([thiagoftsm](https://github.com/thiagoftsm))
+- remove metrics.csv files [\#15593](https://github.com/netdata/netdata/pull/15593) ([ilyam8](https://github.com/ilyam8))
+- fix tomcat meta [\#15592](https://github.com/netdata/netdata/pull/15592) ([ilyam8](https://github.com/ilyam8))
+- Added a sample metadata.yaml for Alerta [\#15591](https://github.com/netdata/netdata/pull/15591) ([sashwathn](https://github.com/sashwathn))
+- remove the noise by silencing alerts that dont need to wake up people [\#15590](https://github.com/netdata/netdata/pull/15590) ([ktsaou](https://github.com/ktsaou))
+- Fix health query [\#15589](https://github.com/netdata/netdata/pull/15589) ([stelfrag](https://github.com/stelfrag))
+- Fix typo in notification schema. [\#15588](https://github.com/netdata/netdata/pull/15588) ([Ferroin](https://github.com/Ferroin))
+- Update icons for relevant integrations in proc.plugin [\#15587](https://github.com/netdata/netdata/pull/15587) ([sashwathn](https://github.com/sashwathn))
+- Update icon for power supply [\#15586](https://github.com/netdata/netdata/pull/15586) ([sashwathn](https://github.com/sashwathn))
+- Update Slabinfo Logo [\#15585](https://github.com/netdata/netdata/pull/15585) ([sashwathn](https://github.com/sashwathn))
+- fix cpu MHz from /proc/cpuinfo [\#15584](https://github.com/netdata/netdata/pull/15584) ([ilyam8](https://github.com/ilyam8))
+- small readme icon fix [\#15583](https://github.com/netdata/netdata/pull/15583) ([andrewm4894](https://github.com/andrewm4894))
+- update pandas collector metadata [\#15582](https://github.com/netdata/netdata/pull/15582) ([andrewm4894](https://github.com/andrewm4894))
+- Update zscores metadata yaml [\#15581](https://github.com/netdata/netdata/pull/15581) ([andrewm4894](https://github.com/andrewm4894))
+- Create metadata.yaml for MongoDB exporter [\#15580](https://github.com/netdata/netdata/pull/15580) ([shyamvalsan](https://github.com/shyamvalsan))
+- Create metadata.yaml for JSON exporter [\#15579](https://github.com/netdata/netdata/pull/15579) ([shyamvalsan](https://github.com/shyamvalsan))
+- Create metadata.yaml for Google PubSub exporter [\#15578](https://github.com/netdata/netdata/pull/15578) ([shyamvalsan](https://github.com/shyamvalsan))
+- Create metadata.yaml for AWS kinesis exporter [\#15577](https://github.com/netdata/netdata/pull/15577) ([shyamvalsan](https://github.com/shyamvalsan))
+- Create multi\_metadata.yaml for graphite exporters [\#15576](https://github.com/netdata/netdata/pull/15576) ([shyamvalsan](https://github.com/shyamvalsan))
+- Create multi\_metadata.yaml [\#15575](https://github.com/netdata/netdata/pull/15575) ([shyamvalsan](https://github.com/shyamvalsan))
+- Add missing file in CMakeLists.txt [\#15574](https://github.com/netdata/netdata/pull/15574) ([stelfrag](https://github.com/stelfrag))
+- comment out anomalies metadata and add note [\#15573](https://github.com/netdata/netdata/pull/15573) ([andrewm4894](https://github.com/andrewm4894))
+- Fixed deployment commands for Docker, Kubernetes and Linux [\#15572](https://github.com/netdata/netdata/pull/15572) ([sashwathn](https://github.com/sashwathn))
+- filter out systemd-udevd.service/udevd [\#15571](https://github.com/netdata/netdata/pull/15571) ([ilyam8](https://github.com/ilyam8))
+- Added FreeBSD integration and fixed Windows installation Steps [\#15570](https://github.com/netdata/netdata/pull/15570) ([sashwathn](https://github.com/sashwathn))
+- fix schema validation for some meta files [\#15569](https://github.com/netdata/netdata/pull/15569) ([ilyam8](https://github.com/ilyam8))
+- Drop duplicate / unused index [\#15568](https://github.com/netdata/netdata/pull/15568) ([stelfrag](https://github.com/stelfrag))
+- Xen yaml update [\#15567](https://github.com/netdata/netdata/pull/15567) ([thiagoftsm](https://github.com/thiagoftsm))
+- Timex yaml update [\#15565](https://github.com/netdata/netdata/pull/15565) ([thiagoftsm](https://github.com/thiagoftsm))
+- Create metadata.yaml for OpenTSDB Exporter [\#15563](https://github.com/netdata/netdata/pull/15563) ([shyamvalsan](https://github.com/shyamvalsan))
+- TC yaml update [\#15562](https://github.com/netdata/netdata/pull/15562) ([thiagoftsm](https://github.com/thiagoftsm))
+- Added Exporter and Notifications categories and removed them from Data Collection [\#15561](https://github.com/netdata/netdata/pull/15561) ([sashwathn](https://github.com/sashwathn))
+- Update slabinfo yaml [\#15560](https://github.com/netdata/netdata/pull/15560) ([thiagoftsm](https://github.com/thiagoftsm))
+- Update metadata.yaml for charts.d collectors [\#15559](https://github.com/netdata/netdata/pull/15559) ([MrZammler](https://github.com/MrZammler))
+- Perf yaml [\#15558](https://github.com/netdata/netdata/pull/15558) ([thiagoftsm](https://github.com/thiagoftsm))
+- detect the path the netdata-claim.sh script is in [\#15556](https://github.com/netdata/netdata/pull/15556) ([ktsaou](https://github.com/ktsaou))
+- Fixed typos in code blocks and added missing icons [\#15555](https://github.com/netdata/netdata/pull/15555) ([sashwathn](https://github.com/sashwathn))
+- Remove temporarily from the CI Tumbleweed support [\#15554](https://github.com/netdata/netdata/pull/15554) ([tkatsoulas](https://github.com/tkatsoulas))
+- fix ebpf.plugin system swapcalls [\#15553](https://github.com/netdata/netdata/pull/15553) ([ilyam8](https://github.com/ilyam8))
+- Fixes for `deploy.yaml`. [\#15551](https://github.com/netdata/netdata/pull/15551) ([Ferroin](https://github.com/Ferroin))
+- bump ui to v6.22.1 [\#15550](https://github.com/netdata/netdata/pull/15550) ([ilyam8](https://github.com/ilyam8))
+- Add schema and examples for notification method metadata. [\#15549](https://github.com/netdata/netdata/pull/15549) ([Ferroin](https://github.com/Ferroin))
+- Update python sensors metadata yaml [\#15548](https://github.com/netdata/netdata/pull/15548) ([andrewm4894](https://github.com/andrewm4894))
+- fix yamls [\#15547](https://github.com/netdata/netdata/pull/15547) ([Ancairon](https://github.com/Ancairon))
+- fix expiration dates for API responses [\#15546](https://github.com/netdata/netdata/pull/15546) ([ktsaou](https://github.com/ktsaou))
+- Add exporter integration schema. [\#15545](https://github.com/netdata/netdata/pull/15545) ([Ferroin](https://github.com/Ferroin))
+- postfix metadata.yaml - add links and some descriptions [\#15544](https://github.com/netdata/netdata/pull/15544) ([andrewm4894](https://github.com/andrewm4894))
+- Update metadata for multiple python collectors. [\#15543](https://github.com/netdata/netdata/pull/15543) ([tkatsoulas](https://github.com/tkatsoulas))
+- bump ui to v6.22.0 [\#15542](https://github.com/netdata/netdata/pull/15542) ([ilyam8](https://github.com/ilyam8))
+- Fill in yaml files for some python collectors [\#15541](https://github.com/netdata/netdata/pull/15541) ([Ancairon](https://github.com/Ancairon))
+- Fix deployment and categories [\#15540](https://github.com/netdata/netdata/pull/15540) ([sashwathn](https://github.com/sashwathn))
+- docs: fix apps fd badges and typos [\#15539](https://github.com/netdata/netdata/pull/15539) ([ilyam8](https://github.com/ilyam8))
+- change api.netdata.cloud to app.netdata.cloud [\#15538](https://github.com/netdata/netdata/pull/15538) ([ilyam8](https://github.com/ilyam8))
+- Update metadata.yaml for some python collectors - 2 [\#15537](https://github.com/netdata/netdata/pull/15537) ([MrZammler](https://github.com/MrZammler))
+- Change nvidia\_smi link to go version in COLLECTORS.md [\#15536](https://github.com/netdata/netdata/pull/15536) ([Ancairon](https://github.com/Ancairon))
+- Update nfacct yaml [\#15535](https://github.com/netdata/netdata/pull/15535) ([thiagoftsm](https://github.com/thiagoftsm))
+- Update ioping yaml [\#15534](https://github.com/netdata/netdata/pull/15534) ([thiagoftsm](https://github.com/thiagoftsm))
+- Freeimpi yaml [\#15533](https://github.com/netdata/netdata/pull/15533) ([thiagoftsm](https://github.com/thiagoftsm))
+- Updated all Linux distros, macOS and Docker [\#15532](https://github.com/netdata/netdata/pull/15532) ([sashwathn](https://github.com/sashwathn))
+- Update platform support info and add a schema. [\#15531](https://github.com/netdata/netdata/pull/15531) ([Ferroin](https://github.com/Ferroin))
+- added cloud status in registry?action=hello [\#15530](https://github.com/netdata/netdata/pull/15530) ([ktsaou](https://github.com/ktsaou))
+- update memcached metadata.yaml [\#15529](https://github.com/netdata/netdata/pull/15529) ([andrewm4894](https://github.com/andrewm4894))
+- Update python d varnish metadata [\#15528](https://github.com/netdata/netdata/pull/15528) ([andrewm4894](https://github.com/andrewm4894))
+- Update yaml description \(diskspace\) [\#15527](https://github.com/netdata/netdata/pull/15527) ([thiagoftsm](https://github.com/thiagoftsm))
+- wait for node\_id while claiming [\#15526](https://github.com/netdata/netdata/pull/15526) ([ktsaou](https://github.com/ktsaou))
+- add `diskquota` collector to third party collectors list [\#15524](https://github.com/netdata/netdata/pull/15524) ([andrewm4894](https://github.com/andrewm4894))
+- Add quick\_start key to deploy schema. [\#15522](https://github.com/netdata/netdata/pull/15522) ([Ferroin](https://github.com/Ferroin))
+- Add a schema for the categories.yaml file. [\#15521](https://github.com/netdata/netdata/pull/15521) ([Ferroin](https://github.com/Ferroin))
+- fix collector multi schema [\#15520](https://github.com/netdata/netdata/pull/15520) ([ilyam8](https://github.com/ilyam8))
+- Allow to create alert hashes with --disable-cloud [\#15519](https://github.com/netdata/netdata/pull/15519) ([MrZammler](https://github.com/MrZammler))
+- Python collector yaml updates [\#15517](https://github.com/netdata/netdata/pull/15517) ([Ancairon](https://github.com/Ancairon))
+- eBPF Yaml complement [\#15516](https://github.com/netdata/netdata/pull/15516) ([thiagoftsm](https://github.com/thiagoftsm))
+- Add AMD GPU collector [\#15515](https://github.com/netdata/netdata/pull/15515) ([Dim-P](https://github.com/Dim-P))
+- Update metadata.yaml for some python collectors [\#15513](https://github.com/netdata/netdata/pull/15513) ([MrZammler](https://github.com/MrZammler))
+- Update metadata.yaml for some python collectors [\#15510](https://github.com/netdata/netdata/pull/15510) ([andrewm4894](https://github.com/andrewm4894))
+- Add schema for deployment integrations and centralize integrations schemas. [\#15509](https://github.com/netdata/netdata/pull/15509) ([Ferroin](https://github.com/Ferroin))
+- update gitignore to include vscode settings for schema validation [\#15508](https://github.com/netdata/netdata/pull/15508) ([andrewm4894](https://github.com/andrewm4894))
+- Add Samba collector yaml [\#15507](https://github.com/netdata/netdata/pull/15507) ([Ancairon](https://github.com/Ancairon))
+- Fill in metadata for idlejitter plugin. [\#15506](https://github.com/netdata/netdata/pull/15506) ([Ferroin](https://github.com/Ferroin))
+- apps.plugin limits tracing [\#15504](https://github.com/netdata/netdata/pull/15504) ([ktsaou](https://github.com/ktsaou))
+- Allow manage/health api call to be used without bearer [\#15503](https://github.com/netdata/netdata/pull/15503) ([MrZammler](https://github.com/MrZammler))
+- Avoid an extra uuid\_copy when creating new MRG entries [\#15502](https://github.com/netdata/netdata/pull/15502) ([stelfrag](https://github.com/stelfrag))
+- freeipmi flush keepalive msgs [\#15499](https://github.com/netdata/netdata/pull/15499) ([ilyam8](https://github.com/ilyam8))
+- add required properties to multi-module schema [\#15496](https://github.com/netdata/netdata/pull/15496) ([ilyam8](https://github.com/ilyam8))
+- proc integrations [\#15494](https://github.com/netdata/netdata/pull/15494) ([ktsaou](https://github.com/ktsaou))
+- docs: clarify health percentage option [\#15492](https://github.com/netdata/netdata/pull/15492) ([ilyam8](https://github.com/ilyam8))
+- Fix resource leak - CID 396310 [\#15491](https://github.com/netdata/netdata/pull/15491) ([stelfrag](https://github.com/stelfrag))
+- Improve the update of the alert chart name in the database [\#15490](https://github.com/netdata/netdata/pull/15490) ([stelfrag](https://github.com/stelfrag))
+- PCI Advanced Error Reporting \(AER\) [\#15488](https://github.com/netdata/netdata/pull/15488) ([ktsaou](https://github.com/ktsaou))
+- Dynamic Config MVP0 [\#15486](https://github.com/netdata/netdata/pull/15486) ([underhood](https://github.com/underhood))
+- Add a machine distinct id to analytics [\#15485](https://github.com/netdata/netdata/pull/15485) ([MrZammler](https://github.com/MrZammler))
+- Add basic slabinfo metadata. [\#15484](https://github.com/netdata/netdata/pull/15484) ([Ferroin](https://github.com/Ferroin))
+- Update charts.d.plugin yaml [\#15483](https://github.com/netdata/netdata/pull/15483) ([Ancairon](https://github.com/Ancairon))
+- Make title reflect legacy agent dashboard [\#15479](https://github.com/netdata/netdata/pull/15479) ([Ancairon](https://github.com/Ancairon))
+- docs: note that health foreach works only with template [\#15478](https://github.com/netdata/netdata/pull/15478) ([ilyam8](https://github.com/ilyam8))
+- Yaml file updates [\#15477](https://github.com/netdata/netdata/pull/15477) ([Ancairon](https://github.com/Ancairon))
+- Rename most-popular to most\_popular in categories.yaml [\#15476](https://github.com/netdata/netdata/pull/15476) ([Ancairon](https://github.com/Ancairon))
+- Fix coverity issue [\#15475](https://github.com/netdata/netdata/pull/15475) ([stelfrag](https://github.com/stelfrag))
+- eBPF Yaml [\#15474](https://github.com/netdata/netdata/pull/15474) ([thiagoftsm](https://github.com/thiagoftsm))
+- Memory Controller \(MC\) and DIMM Error Detection And Correction \(EDAC\) [\#15473](https://github.com/netdata/netdata/pull/15473) ([ktsaou](https://github.com/ktsaou))
+- meta schema change multi-instance to multi\_instance [\#15470](https://github.com/netdata/netdata/pull/15470) ([ilyam8](https://github.com/ilyam8))
+- fix anchors [\#15469](https://github.com/netdata/netdata/pull/15469) ([Ancairon](https://github.com/Ancairon))
+- fix the calculation of incremental-sum [\#15468](https://github.com/netdata/netdata/pull/15468) ([ktsaou](https://github.com/ktsaou))
+- apps.plugin fds limits improvements [\#15467](https://github.com/netdata/netdata/pull/15467) ([ktsaou](https://github.com/ktsaou))
+- Add community key in schema [\#15465](https://github.com/netdata/netdata/pull/15465) ([Ancairon](https://github.com/Ancairon))
+- Overhaul deployment strategies documentation [\#15464](https://github.com/netdata/netdata/pull/15464) ([ralphm](https://github.com/ralphm))
+- Update debugfs plugin metadata. [\#15463](https://github.com/netdata/netdata/pull/15463) ([Ferroin](https://github.com/Ferroin))
+- Update proc plugin yaml [\#15460](https://github.com/netdata/netdata/pull/15460) ([Ancairon](https://github.com/Ancairon))
+- Macos yaml updates [\#15459](https://github.com/netdata/netdata/pull/15459) ([Ancairon](https://github.com/Ancairon))
+- Freeipmi yaml updates [\#15458](https://github.com/netdata/netdata/pull/15458) ([Ancairon](https://github.com/Ancairon))
+- Add short descriptions to cgroups yaml [\#15457](https://github.com/netdata/netdata/pull/15457) ([Ancairon](https://github.com/Ancairon))
+- readme: reorder cols in whats new and add links [\#15455](https://github.com/netdata/netdata/pull/15455) ([andrewm4894](https://github.com/andrewm4894))
+- Store and transmit chart\_name to cloud in alert events [\#15441](https://github.com/netdata/netdata/pull/15441) ([MrZammler](https://github.com/MrZammler))
+- Refactor RRD code. [\#15423](https://github.com/netdata/netdata/pull/15423) ([vkalintiris](https://github.com/vkalintiris))
+- Add initial tooling for generating integrations.js file. [\#15406](https://github.com/netdata/netdata/pull/15406) ([Ferroin](https://github.com/Ferroin))
+- Add linux powercap metrics collector [\#15364](https://github.com/netdata/netdata/pull/15364) ([fhriley](https://github.com/fhriley))
+- systemd-journal plugin [\#15363](https://github.com/netdata/netdata/pull/15363) ([ktsaou](https://github.com/ktsaou))
+- Hash table charts [\#15323](https://github.com/netdata/netdata/pull/15323) ([thiagoftsm](https://github.com/thiagoftsm))
+- Drop support for native packages of Ubuntu 22.10 [\#15292](https://github.com/netdata/netdata/pull/15292) ([tkatsoulas](https://github.com/tkatsoulas))
+- Fix non-interactive options for apt-get and zypper. [\#15288](https://github.com/netdata/netdata/pull/15288) ([zeylos](https://github.com/zeylos))
+
## [v1.41.0](https://github.com/netdata/netdata/tree/v1.41.0) (2023-07-19)
[Full Changelog](https://github.com/netdata/netdata/compare/v1.40.1...v1.41.0)
@@ -161,25 +418,6 @@
- cgroups: remove pod\_uid and container\_id labels in k8s [\#15216](https://github.com/netdata/netdata/pull/15216) ([ilyam8](https://github.com/ilyam8))
- Allow overriding pipename from env [\#15215](https://github.com/netdata/netdata/pull/15215) ([vkalintiris](https://github.com/vkalintiris))
- eBPF Functions \(enable/disable threads\) [\#15214](https://github.com/netdata/netdata/pull/15214) ([thiagoftsm](https://github.com/thiagoftsm))
-- Fix health crash [\#15209](https://github.com/netdata/netdata/pull/15209) ([stelfrag](https://github.com/stelfrag))
-- Fix file permissions under directory [\#15208](https://github.com/netdata/netdata/pull/15208) ([stelfrag](https://github.com/stelfrag))
-- RocketChat cloud integration docs [\#15205](https://github.com/netdata/netdata/pull/15205) ([car12o](https://github.com/car12o))
-- Obvious memory reductions [\#15204](https://github.com/netdata/netdata/pull/15204) ([ktsaou](https://github.com/ktsaou))
-- Agent dashboard reorganization. [\#15200](https://github.com/netdata/netdata/pull/15200) ([Ferroin](https://github.com/Ferroin))
-- sqlite\_health.c: remove `uuid.h` include [\#15195](https://github.com/netdata/netdata/pull/15195) ([nandahkrishna](https://github.com/nandahkrishna))
-- RPM: Added elfutils-libelf-devel for build with eBPF \(again\) [\#15192](https://github.com/netdata/netdata/pull/15192) ([k0ste](https://github.com/k0ste))
-- Speed up eBPF exit before to bring functions [\#15187](https://github.com/netdata/netdata/pull/15187) ([thiagoftsm](https://github.com/thiagoftsm))
-- Add two functions that allow someone to start/stop ML. [\#15185](https://github.com/netdata/netdata/pull/15185) ([vkalintiris](https://github.com/vkalintiris))
-- Fix issues in sync thread \(eBPF plugin\) [\#15174](https://github.com/netdata/netdata/pull/15174) ([thiagoftsm](https://github.com/thiagoftsm))
-- /api/v2/nodes and streaming function [\#15168](https://github.com/netdata/netdata/pull/15168) ([ktsaou](https://github.com/ktsaou))
-- Use a single health log table [\#15157](https://github.com/netdata/netdata/pull/15157) ([MrZammler](https://github.com/MrZammler))
-- Add configuration file for netdata-updater.sh. [\#15149](https://github.com/netdata/netdata/pull/15149) ([Ferroin](https://github.com/Ferroin))
-- Redirect to index.html when a file is not found by web server [\#15143](https://github.com/netdata/netdata/pull/15143) ([MrZammler](https://github.com/MrZammler))
-- fix\(alerting\): removing some of criticals [\#15124](https://github.com/netdata/netdata/pull/15124) ([M4itee](https://github.com/M4itee))
-- Add hardening options to CFLAGS by default if they are available. [\#15087](https://github.com/netdata/netdata/pull/15087) ([Ferroin](https://github.com/Ferroin))
-- Additional CO-RE code \(eBPF.plugin\) [\#15078](https://github.com/netdata/netdata/pull/15078) ([thiagoftsm](https://github.com/thiagoftsm))
-- Update README.md [\#15044](https://github.com/netdata/netdata/pull/15044) ([ktsaou](https://github.com/ktsaou))
-- Consistently start the agent as root and rely on it to drop privileges properly. [\#14890](https://github.com/netdata/netdata/pull/14890) ([Ferroin](https://github.com/Ferroin))
## [v1.40.1](https://github.com/netdata/netdata/tree/v1.40.1) (2023-06-27)
@@ -189,99 +427,6 @@
[Full Changelog](https://github.com/netdata/netdata/compare/v1.39.1...v1.40.0)
-**Merged pull requests:**
-
-- ebpf: disable sync by default [\#15190](https://github.com/netdata/netdata/pull/15190) ([ilyam8](https://github.com/ilyam8))
-- Add support for SUSE 15.5 [\#15189](https://github.com/netdata/netdata/pull/15189) ([tkatsoulas](https://github.com/tkatsoulas))
-- bump go.d.plugin to v0.53.2 [\#15184](https://github.com/netdata/netdata/pull/15184) ([ilyam8](https://github.com/ilyam8))
-- Do strdupz on empty string [\#15183](https://github.com/netdata/netdata/pull/15183) ([MrZammler](https://github.com/MrZammler))
-- set setuid for go.d.plugin in container [\#15180](https://github.com/netdata/netdata/pull/15180) ([ilyam8](https://github.com/ilyam8))
-- bump go.d.plugin to v0.53.1 [\#15179](https://github.com/netdata/netdata/pull/15179) ([ilyam8](https://github.com/ilyam8))
-- Update smartd\_log.conf [\#15171](https://github.com/netdata/netdata/pull/15171) ([TougeAI](https://github.com/TougeAI))
-- Change package conflicts policy on deb based packages [\#15170](https://github.com/netdata/netdata/pull/15170) ([tkatsoulas](https://github.com/tkatsoulas))
-- Fix coverity issues [\#15169](https://github.com/netdata/netdata/pull/15169) ([stelfrag](https://github.com/stelfrag))
-- Fix user and group handling in DEB packages. [\#15166](https://github.com/netdata/netdata/pull/15166) ([Ferroin](https://github.com/Ferroin))
-- change mandatory packages for RPMs [\#15165](https://github.com/netdata/netdata/pull/15165) ([tkatsoulas](https://github.com/tkatsoulas))
-- Fix CID 385073 -- Uninitialized scalar variable [\#15163](https://github.com/netdata/netdata/pull/15163) ([stelfrag](https://github.com/stelfrag))
-- api v2 nodes for streaming statuses [\#15162](https://github.com/netdata/netdata/pull/15162) ([ktsaou](https://github.com/ktsaou))
-- Restrict ebpf dep in DEB package to amd64 only. [\#15161](https://github.com/netdata/netdata/pull/15161) ([Ferroin](https://github.com/Ferroin))
-- Make plugin packages hard dependencies. [\#15160](https://github.com/netdata/netdata/pull/15160) ([Ferroin](https://github.com/Ferroin))
-- freeipmi: add availability status chart and alarm [\#15151](https://github.com/netdata/netdata/pull/15151) ([ilyam8](https://github.com/ilyam8))
-- Check null transition id and config hash [\#15147](https://github.com/netdata/netdata/pull/15147) ([stelfrag](https://github.com/stelfrag))
-- eBPF unittest + bug fix [\#15146](https://github.com/netdata/netdata/pull/15146) ([thiagoftsm](https://github.com/thiagoftsm))
-- Mattermost cloud integration docs [\#15141](https://github.com/netdata/netdata/pull/15141) ([car12o](https://github.com/car12o))
-- send EXIT before exiting in freeipmi and debugfs plugins [\#15140](https://github.com/netdata/netdata/pull/15140) ([ilyam8](https://github.com/ilyam8))
-- minor - fix syntax in config.ac [\#15139](https://github.com/netdata/netdata/pull/15139) ([underhood](https://github.com/underhood))
-- fix a typo in `libnetdata/simple_pattern/README.md` [\#15135](https://github.com/netdata/netdata/pull/15135) ([n0099](https://github.com/n0099))
-- updated events docs and minor fix on silecing rules table [\#15134](https://github.com/netdata/netdata/pull/15134) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Provide necessary permission for the kickstart to run the netdata-updater script [\#15132](https://github.com/netdata/netdata/pull/15132) ([tkatsoulas](https://github.com/tkatsoulas))
-- fix: allow square brackets in label value [\#15131](https://github.com/netdata/netdata/pull/15131) ([ilyam8](https://github.com/ilyam8))
-- Add library to encode/decode Gorilla compressed buffers. [\#15128](https://github.com/netdata/netdata/pull/15128) ([vkalintiris](https://github.com/vkalintiris))
-- Fix bundling of eBPF legacy code for DEB packages. [\#15127](https://github.com/netdata/netdata/pull/15127) ([Ferroin](https://github.com/Ferroin))
-- Percentage of group aggregatable at cloud - fixed for backwards compatibility [\#15126](https://github.com/netdata/netdata/pull/15126) ([ktsaou](https://github.com/ktsaou))
-- Fix package versioning issues. [\#15125](https://github.com/netdata/netdata/pull/15125) ([Ferroin](https://github.com/Ferroin))
-- Revert "percentage of group is now aggregatable at cloud across multiple nodes" [\#15122](https://github.com/netdata/netdata/pull/15122) ([ktsaou](https://github.com/ktsaou))
-- add netdata demo rooms to the list of demo urls [\#15120](https://github.com/netdata/netdata/pull/15120) ([andrewm4894](https://github.com/andrewm4894))
-- Fix handling of eBPF plugin for DEB packages. [\#15117](https://github.com/netdata/netdata/pull/15117) ([Ferroin](https://github.com/Ferroin))
-- Re-write of SSL support in Netdata; restoration of SIGCHLD; detection of stale plugins; streaming improvements [\#15113](https://github.com/netdata/netdata/pull/15113) ([ktsaou](https://github.com/ktsaou))
-- initial draft for the silencing docs [\#15112](https://github.com/netdata/netdata/pull/15112) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Generate, store and transmit a unique alert event\_hash\_id [\#15111](https://github.com/netdata/netdata/pull/15111) ([MrZammler](https://github.com/MrZammler))
-- Only queue an alert to the cloud when it's inserted [\#15110](https://github.com/netdata/netdata/pull/15110) ([MrZammler](https://github.com/MrZammler))
-- percentage of group is now aggregatable at cloud across multiple nodes [\#15109](https://github.com/netdata/netdata/pull/15109) ([ktsaou](https://github.com/ktsaou))
-- percentage-of-group: fix uninitialized array vh [\#15106](https://github.com/netdata/netdata/pull/15106) ([ktsaou](https://github.com/ktsaou))
-- fix the units when returning percentage of a group [\#15105](https://github.com/netdata/netdata/pull/15105) ([ktsaou](https://github.com/ktsaou))
-- oracledb: make conn protocol configurable [\#15104](https://github.com/netdata/netdata/pull/15104) ([ilyam8](https://github.com/ilyam8))
-- /api/v2/data percentage calculation on grouped queries [\#15100](https://github.com/netdata/netdata/pull/15100) ([ktsaou](https://github.com/ktsaou))
-- Add chart labels to Prometheus. [\#15099](https://github.com/netdata/netdata/pull/15099) ([thiagoftsm](https://github.com/thiagoftsm))
-- Invert order in remote write [\#15097](https://github.com/netdata/netdata/pull/15097) ([thiagoftsm](https://github.com/thiagoftsm))
-- fix cockroachdb alarms [\#15095](https://github.com/netdata/netdata/pull/15095) ([ilyam8](https://github.com/ilyam8))
-- Address issue with Thanos Receiver [\#15094](https://github.com/netdata/netdata/pull/15094) ([thiagoftsm](https://github.com/thiagoftsm))
-- update ml defaults to 24h [\#15093](https://github.com/netdata/netdata/pull/15093) ([andrewm4894](https://github.com/andrewm4894))
-- Create category overview pages for learn's restructure [\#15091](https://github.com/netdata/netdata/pull/15091) ([Ancairon](https://github.com/Ancairon))
-- Release buffer in case of error -- CID 385075 [\#15090](https://github.com/netdata/netdata/pull/15090) ([stelfrag](https://github.com/stelfrag))
-- health: remove "families" from alarms config [\#15086](https://github.com/netdata/netdata/pull/15086) ([ilyam8](https://github.com/ilyam8))
-- update agent telemetry url to be cloud function instead of posthog [\#15085](https://github.com/netdata/netdata/pull/15085) ([andrewm4894](https://github.com/andrewm4894))
-- mentioned waive off of space subscription price [\#15082](https://github.com/netdata/netdata/pull/15082) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Python Dependency Migration - OracleDB Python Module [\#15074](https://github.com/netdata/netdata/pull/15074) ([EricAndrechek](https://github.com/EricAndrechek))
-- Free context when establishing ACLK connection [\#15073](https://github.com/netdata/netdata/pull/15073) ([stelfrag](https://github.com/stelfrag))
-- Update Security doc [\#15072](https://github.com/netdata/netdata/pull/15072) ([tkatsoulas](https://github.com/tkatsoulas))
-- Update netdata-security.md [\#15068](https://github.com/netdata/netdata/pull/15068) ([cakrit](https://github.com/cakrit))
-- Update netdata-security.md [\#15067](https://github.com/netdata/netdata/pull/15067) ([cakrit](https://github.com/cakrit))
-- Simplify loop in alert checkpoint [\#15065](https://github.com/netdata/netdata/pull/15065) ([MrZammler](https://github.com/MrZammler))
-- Update CODEOWNERS [\#15064](https://github.com/netdata/netdata/pull/15064) ([cakrit](https://github.com/cakrit))
-- Update netdata-security.md [\#15063](https://github.com/netdata/netdata/pull/15063) ([sashwathn](https://github.com/sashwathn))
-- Fix CodeQL warning [\#15062](https://github.com/netdata/netdata/pull/15062) ([stelfrag](https://github.com/stelfrag))
-- Improve some of the error messages in the kickstart script. [\#15061](https://github.com/netdata/netdata/pull/15061) ([Ferroin](https://github.com/Ferroin))
-- Fix memory leak when sending alerts checkoint [\#15060](https://github.com/netdata/netdata/pull/15060) ([stelfrag](https://github.com/stelfrag))
-- bump go.d.plugin to v0.53.0 [\#15059](https://github.com/netdata/netdata/pull/15059) ([ilyam8](https://github.com/ilyam8))
-- Fix ACLK memleak [\#15055](https://github.com/netdata/netdata/pull/15055) ([underhood](https://github.com/underhood))
-- fix\(debugfs/zswap\): don't collect metrics if Zswap is disabled [\#15054](https://github.com/netdata/netdata/pull/15054) ([ilyam8](https://github.com/ilyam8))
-- Comment out default `role_recipients_*` values [\#15047](https://github.com/netdata/netdata/pull/15047) ([jamgregory](https://github.com/jamgregory))
-- Small update ml defaults [\#15046](https://github.com/netdata/netdata/pull/15046) ([andrewm4894](https://github.com/andrewm4894))
-- Better cleanup of health log table [\#15045](https://github.com/netdata/netdata/pull/15045) ([MrZammler](https://github.com/MrZammler))
-- Fix handling of permissions in static installs. [\#15042](https://github.com/netdata/netdata/pull/15042) ([Ferroin](https://github.com/Ferroin))
-- Update tor.chart.py [\#15041](https://github.com/netdata/netdata/pull/15041) ([jmphilippe](https://github.com/jmphilippe))
-- Wording fix in interact with charts doc [\#15040](https://github.com/netdata/netdata/pull/15040) ([Ancairon](https://github.com/Ancairon))
-- fatal in claim\(\) only if --claim-only is used [\#15039](https://github.com/netdata/netdata/pull/15039) ([ilyam8](https://github.com/ilyam8))
-- Update libbpf [\#15038](https://github.com/netdata/netdata/pull/15038) ([thiagoftsm](https://github.com/thiagoftsm))
-- Slight wording fix on the database readme [\#15034](https://github.com/netdata/netdata/pull/15034) ([Ancairon](https://github.com/Ancairon))
-- Update SQLITE to version 3.41.2 [\#15031](https://github.com/netdata/netdata/pull/15031) ([stelfrag](https://github.com/stelfrag))
-- Update troubleshooting-agent-with-cloud-connection.md [\#15029](https://github.com/netdata/netdata/pull/15029) ([cakrit](https://github.com/cakrit))
-- Adjust buffers to prevent overflow [\#15025](https://github.com/netdata/netdata/pull/15025) ([stelfrag](https://github.com/stelfrag))
-- Reduce netdatacli size [\#15024](https://github.com/netdata/netdata/pull/15024) ([stelfrag](https://github.com/stelfrag))
-- Debugfs collector [\#15017](https://github.com/netdata/netdata/pull/15017) ([thiagoftsm](https://github.com/thiagoftsm))
-- review the billing docs for the flow [\#15014](https://github.com/netdata/netdata/pull/15014) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Rollback ML transaction on failure. [\#15013](https://github.com/netdata/netdata/pull/15013) ([vkalintiris](https://github.com/vkalintiris))
-- Silence dimensions with noisy ML models [\#15011](https://github.com/netdata/netdata/pull/15011) ([vkalintiris](https://github.com/vkalintiris))
-- Update chart documentation [\#15010](https://github.com/netdata/netdata/pull/15010) ([Ancairon](https://github.com/Ancairon))
-- Honor maximum message size limit of MQTT server [\#15009](https://github.com/netdata/netdata/pull/15009) ([underhood](https://github.com/underhood))
-- libjudy: remove JudyLTablesGen [\#14984](https://github.com/netdata/netdata/pull/14984) ([mochaaP](https://github.com/mochaaP))
-- Use chart labels to filter alerts [\#14982](https://github.com/netdata/netdata/pull/14982) ([MrZammler](https://github.com/MrZammler))
-- Remove Fedora 36 from CI and platform support. [\#14938](https://github.com/netdata/netdata/pull/14938) ([Ferroin](https://github.com/Ferroin))
-- make zlib compulsory dep [\#14928](https://github.com/netdata/netdata/pull/14928) ([underhood](https://github.com/underhood))
-- Try to detect bind mounts [\#14831](https://github.com/netdata/netdata/pull/14831) ([MrZammler](https://github.com/MrZammler))
-- Remove old logic for handling of legacy stock config files. [\#14829](https://github.com/netdata/netdata/pull/14829) ([Ferroin](https://github.com/Ferroin))
-
## [v1.39.1](https://github.com/netdata/netdata/tree/v1.39.1) (2023-05-18)
[Full Changelog](https://github.com/netdata/netdata/compare/v1.39.0...v1.39.1)
@@ -290,130 +435,6 @@
[Full Changelog](https://github.com/netdata/netdata/compare/v1.38.1...v1.39.0)
-**Merged pull requests:**
-
-- Fix typo in file capabilities settings in static installer. [\#15023](https://github.com/netdata/netdata/pull/15023) ([Ferroin](https://github.com/Ferroin))
-- On data and weight queries now instances filter matches also instance\_id@node\_id [\#15021](https://github.com/netdata/netdata/pull/15021) ([ktsaou](https://github.com/ktsaou))
-- add `grafana` to `apps_groups.conf` [\#15020](https://github.com/netdata/netdata/pull/15020) ([andrewm4894](https://github.com/andrewm4894))
-- Set file capabilities correctly on static installs. [\#15018](https://github.com/netdata/netdata/pull/15018) ([Ferroin](https://github.com/Ferroin))
-- Differentiate error codes better when claiming from kickstart script. [\#15015](https://github.com/netdata/netdata/pull/15015) ([Ferroin](https://github.com/Ferroin))
-- Fix coverity issues [\#15005](https://github.com/netdata/netdata/pull/15005) ([stelfrag](https://github.com/stelfrag))
-- weights endpoint: volume diff of anomaly rates [\#15004](https://github.com/netdata/netdata/pull/15004) ([ktsaou](https://github.com/ktsaou))
-- Bump Coverity scan tool version. [\#15003](https://github.com/netdata/netdata/pull/15003) ([Ferroin](https://github.com/Ferroin))
-- feat\(apps.plugin\): collect context switches [\#15002](https://github.com/netdata/netdata/pull/15002) ([ilyam8](https://github.com/ilyam8))
-- add support for monitoring thp, ballooning, zswap, ksm cow [\#15000](https://github.com/netdata/netdata/pull/15000) ([ktsaou](https://github.com/ktsaou))
-- Fix cmake errors [\#14998](https://github.com/netdata/netdata/pull/14998) ([stelfrag](https://github.com/stelfrag))
-- Remove lighttpd2 from docs [\#14997](https://github.com/netdata/netdata/pull/14997) ([Ancairon](https://github.com/Ancairon))
-- Update netdata-security.md [\#14995](https://github.com/netdata/netdata/pull/14995) ([cakrit](https://github.com/cakrit))
-- feat: add OpsGenie alert levels to payload [\#14992](https://github.com/netdata/netdata/pull/14992) ([OliverNChalk](https://github.com/OliverNChalk))
-- disable CPU full pressure at the system level [\#14991](https://github.com/netdata/netdata/pull/14991) ([ilyam8](https://github.com/ilyam8))
-- fix config generation for plugins [\#14990](https://github.com/netdata/netdata/pull/14990) ([ilyam8](https://github.com/ilyam8))
-- Load/Store ML models [\#14981](https://github.com/netdata/netdata/pull/14981) ([vkalintiris](https://github.com/vkalintiris))
-- Fix TYPO in README.md [\#14980](https://github.com/netdata/netdata/pull/14980) ([DevinNorgarb](https://github.com/DevinNorgarb))
-- add metrics.csv to proc.plugin [\#14979](https://github.com/netdata/netdata/pull/14979) ([thiagoftsm](https://github.com/thiagoftsm))
-- interrupt callback on api/v1/data [\#14978](https://github.com/netdata/netdata/pull/14978) ([ktsaou](https://github.com/ktsaou))
-- add metrics.csv to macos, freebsd and cgroups plugins [\#14977](https://github.com/netdata/netdata/pull/14977) ([ilyam8](https://github.com/ilyam8))
-- fix adding chart labels in tc.plugin [\#14976](https://github.com/netdata/netdata/pull/14976) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to some c collectors [\#14974](https://github.com/netdata/netdata/pull/14974) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to perf.plugin [\#14973](https://github.com/netdata/netdata/pull/14973) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to xenstat.plugin [\#14972](https://github.com/netdata/netdata/pull/14972) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to slabinfo.plugin [\#14971](https://github.com/netdata/netdata/pull/14971) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to timex.plugin [\#14970](https://github.com/netdata/netdata/pull/14970) ([ilyam8](https://github.com/ilyam8))
-- do not convert to percentage, when the raw option is given [\#14969](https://github.com/netdata/netdata/pull/14969) ([ktsaou](https://github.com/ktsaou))
-- add metrics.csv to apps.plugin [\#14968](https://github.com/netdata/netdata/pull/14968) ([ilyam8](https://github.com/ilyam8))
-- add metrics.csv to charts.d [\#14966](https://github.com/netdata/netdata/pull/14966) ([ilyam8](https://github.com/ilyam8))
-- Add metrics.csv for ebpf [\#14965](https://github.com/netdata/netdata/pull/14965) ([thiagoftsm](https://github.com/thiagoftsm))
-- Update ML README.md [\#14964](https://github.com/netdata/netdata/pull/14964) ([ktsaou](https://github.com/ktsaou))
-- Document netdatacli dumpconfig option [\#14963](https://github.com/netdata/netdata/pull/14963) ([cakrit](https://github.com/cakrit))
-- Update README.md [\#14962](https://github.com/netdata/netdata/pull/14962) ([cakrit](https://github.com/cakrit))
-- Fix handling of users and groups on install. [\#14961](https://github.com/netdata/netdata/pull/14961) ([Ferroin](https://github.com/Ferroin))
-- Reject child when context is loading [\#14960](https://github.com/netdata/netdata/pull/14960) ([stelfrag](https://github.com/stelfrag))
-- Add metadata.csv to python.d.plugin [\#14959](https://github.com/netdata/netdata/pull/14959) ([Ancairon](https://github.com/Ancairon))
-- Address log issue [\#14958](https://github.com/netdata/netdata/pull/14958) ([thiagoftsm](https://github.com/thiagoftsm))
-- Add adaptec\_raid metrics.csv [\#14955](https://github.com/netdata/netdata/pull/14955) ([Ancairon](https://github.com/Ancairon))
-- Set api v2 version 2 [\#14954](https://github.com/netdata/netdata/pull/14954) ([stelfrag](https://github.com/stelfrag))
-- Cancel Pending Request [\#14953](https://github.com/netdata/netdata/pull/14953) ([underhood](https://github.com/underhood))
-- Terminate JSX element in doc file [\#14952](https://github.com/netdata/netdata/pull/14952) ([Ancairon](https://github.com/Ancairon))
-- Update dbengine README.md [\#14951](https://github.com/netdata/netdata/pull/14951) ([ktsaou](https://github.com/ktsaou))
-- Prevent pager from preventing non-interactive install [\#14950](https://github.com/netdata/netdata/pull/14950) ([bompus](https://github.com/bompus))
-- Update README.md [\#14948](https://github.com/netdata/netdata/pull/14948) ([cakrit](https://github.com/cakrit))
-- Disable SQL operations in training thread [\#14947](https://github.com/netdata/netdata/pull/14947) ([vkalintiris](https://github.com/vkalintiris))
-- Add support for acquire/release operations on RRDSETs [\#14945](https://github.com/netdata/netdata/pull/14945) ([vkalintiris](https://github.com/vkalintiris))
-- fix 32bit segv [\#14940](https://github.com/netdata/netdata/pull/14940) ([ktsaou](https://github.com/ktsaou))
-- Update using-host-labels.md [\#14939](https://github.com/netdata/netdata/pull/14939) ([cakrit](https://github.com/cakrit))
-- Fix broken image, in database/README.md [\#14936](https://github.com/netdata/netdata/pull/14936) ([Ancairon](https://github.com/Ancairon))
-- Add a description to proc.plugin/README.md [\#14935](https://github.com/netdata/netdata/pull/14935) ([Ancairon](https://github.com/Ancairon))
-- zfspool: add suspended state [\#14934](https://github.com/netdata/netdata/pull/14934) ([ilyam8](https://github.com/ilyam8))
-- bump go.d.plugin v0.52.2 [\#14933](https://github.com/netdata/netdata/pull/14933) ([ilyam8](https://github.com/ilyam8))
-- Make the document more generic [\#14932](https://github.com/netdata/netdata/pull/14932) ([cakrit](https://github.com/cakrit))
-- Replace "XYZ view" with "XYZ tab" in documentation files [\#14930](https://github.com/netdata/netdata/pull/14930) ([Ancairon](https://github.com/Ancairon))
-- Add windows MSI installer start stop restart instructions to docs [\#14929](https://github.com/netdata/netdata/pull/14929) ([Ancairon](https://github.com/Ancairon))
-- Add Docker instructions to enable Nvidia GPUs [\#14924](https://github.com/netdata/netdata/pull/14924) ([D34DC3N73R](https://github.com/D34DC3N73R))
-- Initialize machine GUID earlier in the agent startup sequence [\#14922](https://github.com/netdata/netdata/pull/14922) ([stelfrag](https://github.com/stelfrag))
-- bump go.d.plugin to v0.52.1 [\#14921](https://github.com/netdata/netdata/pull/14921) ([ilyam8](https://github.com/ilyam8))
-- Skip ML initialization when it's been disabled in netdata.conf [\#14920](https://github.com/netdata/netdata/pull/14920) ([vkalintiris](https://github.com/vkalintiris))
-- Fix warnings and error when compiling with --disable-dbengine [\#14919](https://github.com/netdata/netdata/pull/14919) ([stelfrag](https://github.com/stelfrag))
-- minor - remove RX\_MSGLEN\_MAX [\#14918](https://github.com/netdata/netdata/pull/14918) ([underhood](https://github.com/underhood))
-- change docusaurus admonitions to our style of admonitions [\#14917](https://github.com/netdata/netdata/pull/14917) ([Ancairon](https://github.com/Ancairon))
-- Add windows diagram [\#14916](https://github.com/netdata/netdata/pull/14916) ([cakrit](https://github.com/cakrit))
-- Add section for scaling parent nodes [\#14915](https://github.com/netdata/netdata/pull/14915) ([cakrit](https://github.com/cakrit))
-- Update suggested replication setups [\#14914](https://github.com/netdata/netdata/pull/14914) ([cakrit](https://github.com/cakrit))
-- Revert ML changes. [\#14908](https://github.com/netdata/netdata/pull/14908) ([vkalintiris](https://github.com/vkalintiris))
-- Remove netdatacli response size limitation [\#14906](https://github.com/netdata/netdata/pull/14906) ([stelfrag](https://github.com/stelfrag))
-- Update change-metrics-storage.md [\#14905](https://github.com/netdata/netdata/pull/14905) ([cakrit](https://github.com/cakrit))
-- /api/v2 part 10 [\#14904](https://github.com/netdata/netdata/pull/14904) ([ktsaou](https://github.com/ktsaou))
-- Optimize the cheat sheet to be in a printable form factor [\#14903](https://github.com/netdata/netdata/pull/14903) ([Ancairon](https://github.com/Ancairon))
-- Address issues on `EC2` \(eBPF\). [\#14902](https://github.com/netdata/netdata/pull/14902) ([thiagoftsm](https://github.com/thiagoftsm))
-- Update REFERENCE.md [\#14900](https://github.com/netdata/netdata/pull/14900) ([cakrit](https://github.com/cakrit))
-- Update README.md [\#14899](https://github.com/netdata/netdata/pull/14899) ([cakrit](https://github.com/cakrit))
-- Update README.md [\#14898](https://github.com/netdata/netdata/pull/14898) ([cakrit](https://github.com/cakrit))
-- Disable threads while we are investigating [\#14897](https://github.com/netdata/netdata/pull/14897) ([thiagoftsm](https://github.com/thiagoftsm))
-- add opsgenie as a business level notificaiton method [\#14895](https://github.com/netdata/netdata/pull/14895) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Remove dry run option from uninstall documentation [\#14894](https://github.com/netdata/netdata/pull/14894) ([Ancairon](https://github.com/Ancairon))
-- cgroups: add option to use Kubelet for pods metadata [\#14891](https://github.com/netdata/netdata/pull/14891) ([ilyam8](https://github.com/ilyam8))
-- /api/v2 part 9 [\#14888](https://github.com/netdata/netdata/pull/14888) ([ktsaou](https://github.com/ktsaou))
-- Add example configuration to w1sensor collector [\#14886](https://github.com/netdata/netdata/pull/14886) ([Ancairon](https://github.com/Ancairon))
-- /api/v2 part 8 [\#14885](https://github.com/netdata/netdata/pull/14885) ([ktsaou](https://github.com/ktsaou))
-- Fix/introduce links inside charts.d.plugin documentation [\#14884](https://github.com/netdata/netdata/pull/14884) ([Ancairon](https://github.com/Ancairon))
-- Add support for alert notifications to ntfy.sh [\#14875](https://github.com/netdata/netdata/pull/14875) ([Dim-P](https://github.com/Dim-P))
-- WEBRTC for communication between agents and browsers [\#14874](https://github.com/netdata/netdata/pull/14874) ([ktsaou](https://github.com/ktsaou))
-- Remove alpine 3.14 from the ci [\#14873](https://github.com/netdata/netdata/pull/14873) ([tkatsoulas](https://github.com/tkatsoulas))
-- cgroups.plugin: add image label [\#14872](https://github.com/netdata/netdata/pull/14872) ([ilyam8](https://github.com/ilyam8))
-- Fix regex syntax for clang-format checks. [\#14871](https://github.com/netdata/netdata/pull/14871) ([Ferroin](https://github.com/Ferroin))
-- bump go.d.plugin v0.52.0 [\#14870](https://github.com/netdata/netdata/pull/14870) ([ilyam8](https://github.com/ilyam8))
-- eBPF bug fixes [\#14869](https://github.com/netdata/netdata/pull/14869) ([thiagoftsm](https://github.com/thiagoftsm))
-- Update link from http to https [\#14864](https://github.com/netdata/netdata/pull/14864) ([Ancairon](https://github.com/Ancairon))
-- Fix js tag in documentation [\#14862](https://github.com/netdata/netdata/pull/14862) ([Ancairon](https://github.com/Ancairon))
-- Set a default registry unique id when there is none for statistics script [\#14861](https://github.com/netdata/netdata/pull/14861) ([MrZammler](https://github.com/MrZammler))
-- review usage of you to say user instead [\#14858](https://github.com/netdata/netdata/pull/14858) ([hugovalente-pm](https://github.com/hugovalente-pm))
-- Add labels for cgroup name [\#14856](https://github.com/netdata/netdata/pull/14856) ([thiagoftsm](https://github.com/thiagoftsm))
-- fix typo alerms -\> alarms [\#14854](https://github.com/netdata/netdata/pull/14854) ([slavox](https://github.com/slavox))
-- Add a checkpoint message to alerts stream [\#14847](https://github.com/netdata/netdata/pull/14847) ([MrZammler](https://github.com/MrZammler))
-- fix \#14841 Exception funktion call Rados.mon\_command\(\) [\#14844](https://github.com/netdata/netdata/pull/14844) ([farax4de](https://github.com/farax4de))
-- Update parent child examples [\#14842](https://github.com/netdata/netdata/pull/14842) ([cakrit](https://github.com/cakrit))
-- fix double host prefix when reading ZFS pools state [\#14840](https://github.com/netdata/netdata/pull/14840) ([ilyam8](https://github.com/ilyam8))
-- Update enable-notifications.md [\#14838](https://github.com/netdata/netdata/pull/14838) ([cakrit](https://github.com/cakrit))
-- Update deployment-strategies.md [\#14837](https://github.com/netdata/netdata/pull/14837) ([cakrit](https://github.com/cakrit))
-- Update database engine readme [\#14836](https://github.com/netdata/netdata/pull/14836) ([cakrit](https://github.com/cakrit))
-- Update change-metrics-storage.md [\#14835](https://github.com/netdata/netdata/pull/14835) ([cakrit](https://github.com/cakrit))
-- Update change-metrics-storage.md [\#14834](https://github.com/netdata/netdata/pull/14834) ([cakrit](https://github.com/cakrit))
-- Update netdata-security.md [\#14833](https://github.com/netdata/netdata/pull/14833) ([cakrit](https://github.com/cakrit))
-- Boost dbengine [\#14832](https://github.com/netdata/netdata/pull/14832) ([ktsaou](https://github.com/ktsaou))
-- add some third party collectors [\#14830](https://github.com/netdata/netdata/pull/14830) ([andrewm4894](https://github.com/andrewm4894))
-- Add opsgenie integration docs [\#14828](https://github.com/netdata/netdata/pull/14828) ([iorvd](https://github.com/iorvd))
-- Update Agent notification methods documentation [\#14827](https://github.com/netdata/netdata/pull/14827) ([Ancairon](https://github.com/Ancairon))
-- Delete installation instructions specific to FreeNAS [\#14826](https://github.com/netdata/netdata/pull/14826) ([Ancairon](https://github.com/Ancairon))
-- First batch of adding descriptions to the documentation [\#14825](https://github.com/netdata/netdata/pull/14825) ([Ancairon](https://github.com/Ancairon))
-- Fix Btrfs unallocated space accounting [\#14824](https://github.com/netdata/netdata/pull/14824) ([intelfx](https://github.com/intelfx))
-- Update the bundled version of makeself used to create static builds. [\#14822](https://github.com/netdata/netdata/pull/14822) ([Ferroin](https://github.com/Ferroin))
-- configure extent cache size [\#14821](https://github.com/netdata/netdata/pull/14821) ([ktsaou](https://github.com/ktsaou))
-- Docs, shorten too long titles, and add a description below [\#14820](https://github.com/netdata/netdata/pull/14820) ([Ancairon](https://github.com/Ancairon))
-- update posthog domain [\#14818](https://github.com/netdata/netdata/pull/14818) ([andrewm4894](https://github.com/andrewm4894))
-- minor - add capability signifying this agent can speak apiv2 [\#14817](https://github.com/netdata/netdata/pull/14817) ([underhood](https://github.com/underhood))
-- Minor improvements to netdata-security.md [\#14815](https://github.com/netdata/netdata/pull/14815) ([cakrit](https://github.com/cakrit))
-- Update privacy link in aclk doc [\#14813](https://github.com/netdata/netdata/pull/14813) ([cakrit](https://github.com/cakrit))
-- Consolidate security and privacy documents [\#14812](https://github.com/netdata/netdata/pull/14812) ([cakrit](https://github.com/cakrit))
-
## [v1.38.1](https://github.com/netdata/netdata/tree/v1.38.1) (2023-02-13)
[Full Changelog](https://github.com/netdata/netdata/compare/v1.38.0...v1.38.1)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 94d998462..eb96b461c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -512,6 +512,7 @@ set(DEBUGFS_PLUGIN_FILES
collectors/debugfs.plugin/debugfs_plugin.h
collectors/debugfs.plugin/debugfs_extfrag.c
collectors/debugfs.plugin/debugfs_zswap.c
+ collectors/debugfs.plugin/sys_devices_virtual_powercap.c
)
set(FREEBSD_PLUGIN_FILES
@@ -669,6 +670,8 @@ set(PROC_PLUGIN_FILES
collectors/proc.plugin/sys_class_infiniband.c
collectors/proc.plugin/sys_fs_btrfs.c
collectors/proc.plugin/sys_class_power_supply.c
+ collectors/proc.plugin/sys_devices_pci_aer.c
+ collectors/proc.plugin/sys_class_drm.c
)
set(TC_PLUGIN_FILES
diff --git a/Makefile.am b/Makefile.am
index 84bf4c9da..e0e85d288 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -154,6 +154,8 @@ LIBNETDATA_FILES = \
libnetdata/dictionary/dictionary.h \
libnetdata/eval/eval.c \
libnetdata/eval/eval.h \
+ libnetdata/facets/facets.c \
+ libnetdata/facets/facets.h \
libnetdata/gorilla/gorilla.h \
libnetdata/gorilla/gorilla.cc \
libnetdata/inlined.h \
@@ -200,6 +202,8 @@ LIBNETDATA_FILES = \
libnetdata/worker_utilization/worker_utilization.c \
libnetdata/worker_utilization/worker_utilization.h \
libnetdata/http/http_defs.h \
+ libnetdata/dyn_conf/dyn_conf.c \
+ libnetdata/dyn_conf/dyn_conf.h \
$(NULL)
if ENABLE_PLUGIN_EBPF
@@ -219,6 +223,7 @@ DEBUGFS_PLUGIN_FILES = \
collectors/debugfs.plugin/debugfs_plugin.h \
collectors/debugfs.plugin/debugfs_extfrag.c \
collectors/debugfs.plugin/debugfs_zswap.c \
+ collectors/debugfs.plugin/sys_devices_virtual_powercap.c \
$(LIBNETDATA_FILES) \
$(NULL)
@@ -299,6 +304,11 @@ FREEIPMI_PLUGIN_FILES = \
$(LIBNETDATA_FILES) \
$(NULL)
+SYSTEMD_JOURNAL_PLUGIN_FILES = \
+ collectors/systemd-journal.plugin/systemd-journal.c \
+ $(LIBNETDATA_FILES) \
+ $(NULL)
+
CUPS_PLUGIN_FILES = \
collectors/cups.plugin/cups_plugin.c \
$(LIBNETDATA_FILES) \
@@ -408,10 +418,12 @@ PROC_PLUGIN_FILES = \
collectors/proc.plugin/sys_kernel_mm_ksm.c \
collectors/proc.plugin/sys_block_zram.c \
collectors/proc.plugin/sys_devices_system_edac_mc.c \
+ collectors/proc.plugin/sys_devices_pci_aer.c \
collectors/proc.plugin/sys_devices_system_node.c \
collectors/proc.plugin/sys_fs_btrfs.c \
collectors/proc.plugin/sys_class_power_supply.c \
collectors/proc.plugin/sys_class_infiniband.c \
+ collectors/proc.plugin/sys_class_drm.c \
$(NULL)
PROFILE_PLUGIN_FILES = \
@@ -1228,6 +1240,15 @@ if ENABLE_PLUGIN_FREEIPMI
$(NULL)
endif
+if ENABLE_PLUGIN_SYSTEMD_JOURNAL
+ plugins_PROGRAMS += systemd-journal.plugin
+ systemd_journal_plugin_SOURCES = $(SYSTEMD_JOURNAL_PLUGIN_FILES)
+ systemd_journal_plugin_LDADD = \
+ $(NETDATA_COMMON_LIBS) \
+ $(OPTIONAL_SYSTEMD_LIBS) \
+ $(NULL)
+endif
+
if ENABLE_PLUGIN_EBPF
plugins_PROGRAMS += ebpf.plugin
ebpf_plugin_SOURCES = $(EBPF_PLUGIN_FILES)
diff --git a/README.md b/README.md
index 4cdd81a5b..aa408f3ac 100644
--- a/README.md
+++ b/README.md
@@ -25,9 +25,14 @@
+
+Visit the Project's Home Page
+
-Netdata collects metrics per second and presents them in beautiful low-latency dashboards. It is designed to run on all of your physical and virtual servers, cloud deployments, Kubernetes clusters, and edge/IoT devices, to monitor your systems, containers and applications.
+MENU: **[WHAT IS NEW](#whats-new-and-coming)** | **[GETTING STARTED](#getting-started)** | **[HOW IT WORKS](#how-it-works)** | **[FAQ](#faq)** | **[DOCS](#book-documentation)** | **[COMMUNITY](#tada-community)** | **[CONTRIBUTE](#pray-contribute)**
+
+Netdata collects metrics per second and presents them in beautiful low-latency dashboards. It is designed to run on all of your physical and virtual servers, cloud deployments, Kubernetes clusters, and edge/IoT devices, to monitor your systems, containers, and applications.
It scales nicely from just a single server to thousands of servers, even in complex multi/mixed/hybrid cloud environments, and given enough disk space it can keep your metrics for years.
@@ -49,7 +54,7 @@ It scales nicely from just a single server to thousands of servers, even in comp
Comes with hundreds of alerts out of the box to detect common issues and pitfalls, revealing issues that can easily go unnoticed. It supports several notification methods to let you know when your attention is needed.
- :sunglasses: **Low Maintenance**
- Fully automated in every aspect: automated dashboards, out-of-the-box alerts, auto-detection and auto-discovery of metrics, zero-touch machine-learning, easy scalability and high availability and CI/CD friendly.
+ Fully automated in every aspect: automated dashboards, out-of-the-box alerts, auto-detection and auto-discovery of metrics, zero-touch machine-learning, easy scalability and high availability, and CI/CD friendly.
- :star: **Open and Extensible**
Netdata is a modular platform that can be extended in all possible ways and it also integrates nicely with other monitoring solutions.
@@ -67,6 +72,21 @@ It scales nicely from just a single server to thousands of servers, even in comp
+
+ Below is an animated image, but you can see Netdata live!
+ FRANKFURT |
+ NEWYORK |
+ ATLANTA |
+ SANFRANCISCO |
+ TORONTO |
+ SINGAPORE |
+ BANGALORE
+
+ They are clustered Netdata Parents. They all have the same data. Select the one closer to you.
+
+ All these run with the default configuration. We only clustered them to have multi-node dashboards.
+
+
![Netdata Agent](https://github.com/netdata/netdata/assets/2662304/af4caa23-19be-46ef-9779-8fdad8d99d2a)
@@ -79,40 +99,42 @@ It scales nicely from just a single server to thousands of servers, even in comp
## What's New and Coming?
> **Spoiler!**
-> The nightly version of the Netdata Agent has a new UI that is planned to be released July 19th 2023.
+> Netdata Integrations Marketplace is coming...
Click to see our immediate development plans and a summary view of the last 12 months' releases...
-| When | Status | What | Description|
-|:----:|:------:|:----:|:-----------|
-|later|POC|WebRTC|Browser to Agent communication via WebRTC.|
-|later|interrupted|Advanced Troubleshooting|Expanded view of dashboard charts integrating Metrics Correlations, Anomaly Advisor and many more.|
-|next|planned|Easy Custom
Dashboards|Drag and drop charts to create custom dashboards on the fly, while troubleshooting!|
-|next|planned|More Customizability|Set default settings for all charts and views!|
-|soon|in progress|SystemD Journal|View the SystemD Journal of your systems on the dashboard.|
-|soon|in progress|UCUM Units|Migrate all metrics to the Unified Code for Units of Measure.|
-|**soon**|**in progress**|**Netdata Cloud
On-Prem**|**Netdata Cloud available for On-Prem installation!**|
-|soon|in progress|Click to Activate|Configure Alerts and Data Collectors from the UI!|
-|soon|finishing|Integrations|Netdata Integrations Marketplace!|
-|Jul
2023|in the
nightlies|New Agent UI|Now Netdata Cloud and Netdata Agent share the same dashboard!|
-|Jun
2023|[v1.40](https://github.com/netdata/netdata/releases/tag/v1.40.0)|Summary Dashboards|High level tiles everywhere!|
-|||Machine Learning|Multiple ML models per metric.|
-|||SSL|Netdata Agent gets a new SSL layer.|
-|May
2023|[v1.39](https://github.com/netdata/netdata/releases/tag/v1.39.0)|New Cloud UI|Filter, slice and dice any dataset from the UI! ML-first!|
-|||Microsoft Windows|Monitor Windows hosts and apps!|
-|||Virtual Nodes|Go collectors can now be assigned to virtual nodes!|
-|Feb
2023|[v1.38](https://github.com/netdata/netdata/releases/tag/v1.38.0)|DBENGINE v2|Faster, more reliable, far more scalable!|
-|||Netdata Functions|Netdata beyond metrics! Monitoring anything!|
-|||Events Feed|Live feed of events about topology changes and alerts.|
-|||Role Based
Access Control|More roles, offering finer control over access to infrastructure.|
-|Nov
2022|[v1.37](https://github.com/netdata/netdata/releases/tag/v1.37.0)|Infinite Scalability|Streaming compression. Replication. Active-active clustering.|
-|||Grafana Plugin|Netdata Cloud as a data source for Grafana.|
-|||PostgreSQL|Completely rewritten, to reveal all the info, even at the table level.|
-|Aug
2022|[v1.36](https://github.com/netdata/netdata/releases/tag/v1.36.0)|Metrics Correlations|Advanced algorithms to find the needle in the haystack.|
-|||Database Tiering|Netdata gets unlimited retention!|
-|||Kubernetes|Monitor your kubernetes workloads.|
-|||Machine Learning|Anomaly Rate information on every chart.|
+| What | Description | When | Status |
+|:-----------------------------:|:---------------------------------------------------------------------------------------------------:|:------------:|:-------------------------------------------------------------------------------------------------------:|
+| WebRTC | Browser to Agent communication via WebRTC. | later | POC |
+| Advanced Troubleshooting | Expanded view of dashboard charts integrating Metrics Correlations, Anomaly Advisor, and many more. | later | interrupted |
+| Easy Custom
Dashboards | Drag and drop charts to create custom dashboards on the fly, while troubleshooting! | next | planned |
+| More Customizability | Set default settings for all charts and views! | next | planned |
+| SystemD Journal | View the SystemD Journal of your systems on the dashboard. | soon | in progress |
+| UCUM Units | Migrate all metrics to the Unified Code for Units of Measure. | soon | in progress |
+| **Netdata Cloud
On-Prem** | **Netdata Cloud available for On-Prem installation!** | **soon** | **in progress** |
+| Click to Activate | Configure Alerts and Data Collectors from the UI! | soon | in progress |
+| Integrations | Netdata Integrations Marketplace! | soon | finishing |
+| New Agent UI | Now Netdata Cloud and Netdata Agent share the same dashboard! | Jul
2023 | [v1.41](https://github.com/netdata/netdata/releases/tag/v1.41.0#v1410-one-dashboard) |
+| Summary Dashboards | High level tiles everywhere! | Jun
2023 | [v1.40](https://github.com/netdata/netdata/releases/tag/v1.40.0#v1400-visualization-summary-dashboards) |
+| Machine Learning | Multiple ML models per metric. | Jun
2023 | [v1.40](https://github.com/netdata/netdata/releases/tag/v1.40.0#v1400-ml-extended-training) |
+| SSL | Netdata Agent gets a new SSL layer. | Jun
2023 | [v1.40](https://github.com/netdata/netdata/releases/tag/v1.40.0#v1400-streaming) |
+| New Cloud UI | Filter, slice and dice any dataset from the UI! ML-first! | May
2023 | [v1.39](https://github.com/netdata/netdata/releases/tag/v1.39.0) |
+| Microsoft Windows | Monitor Windows hosts and apps! | May
2023 | [v1.39](https://github.com/netdata/netdata/releases/tag/v1.39.0#v1390-windows-support) |
+| Virtual Nodes | Go collectors can now be assigned to virtual nodes! | May
2023 | [v1.39](https://github.com/netdata/netdata/releases/tag/v1.39.0#v1390-virtual-nodes-and-custom-labels) |
+| DBENGINE v2 | Faster, more reliable, far more scalable! | Feb
2023 | [v1.38](https://github.com/netdata/netdata/releases/tag/v1.38.0) |
+| Netdata Functions | Netdata beyond metrics! Monitoring anything! | Feb
2023 | [v1.38](https://github.com/netdata/netdata/releases/tag/v1.38.0#v1380-functions) |
+| Events Feed | Live feed of events about topology changes and alerts. | Feb
2023 | [v1.38](https://github.com/netdata/netdata/releases/tag/v1.38.0#v1380-feed) |
+| Role Based
Access Control | More roles, offering finer control over access to infrastructure. | Feb
2023 | [v1.38](https://github.com/netdata/netdata/releases/tag/v1.38.0#v1380-rbac) |
+| Infinite Scalability | Streaming compression. Replication. Active-active clustering. | Nov
2022 | [v1.37](https://github.com/netdata/netdata/releases/tag/v1.37.0) |
+| Grafana Plugin | Netdata Cloud as a data source for Grafana. | Nov
2022 | [v1.37](https://github.com/netdata/netdata/releases/tag/v1.37.0#v1370-grafana-plugin) |
+| PostgreSQL | Completely rewritten, to reveal all the info, even at the table level. | Nov
2022 | [v1.37](https://github.com/netdata/netdata/releases/tag/v1.37.0#v1370-postgressql) |
+| Metrics Correlations | Advanced algorithms to find the needle in the haystack. | Aug
2022 | [v1.36](https://github.com/netdata/netdata/releases/tag/v1.36.0) |
+| Database Tiering | Netdata gets unlimited retention! | Aug
2022 | [v1.36](https://github.com/netdata/netdata/releases/tag/v1.36.0#v1360-tiering) |
+| Kubernetes | Monitor your Kubernetes workloads. | Aug
2022 | [v1.36](https://github.com/netdata/netdata/releases/tag/v1.36.0#v1360-kubernetes) |
+| Machine Learning | Anomaly Rate information on every chart. | Aug
2022 | [v1.36](https://github.com/netdata/netdata/releases/tag/v1.36.0#v1360-anomaly-rate-on-charts) |
+| Machine Learning | Anomaly Advisor! Bottom-up unsupervised anomaly detection. | Jun
2022 | [v1.35](https://github.com/netdata/netdata/releases/tag/v1.35.0#v1350-anomaly-advisor-ml) |
+| Machine Learning | Metrics Correlation on the Agent. | Jun
2022 | [v1.35](https://github.com/netdata/netdata/releases/tag/v1.35.0#v1350-metric-correlation-agent) |
@@ -121,20 +143,20 @@ It scales nicely from just a single server to thousands of servers, even in comp
## Getting Started
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
### 1. **Install Netdata everywhere** :v:
- Netdata can be installed on all Linux, MacOS, and FreeBSD systems. We provide binary packages for the most popular operating systems and package managers.
+ Netdata can be installed on all Linux, macOS, and FreeBSD systems. We provide binary packages for the most popular operating systems and package managers.
- Install on [Ubuntu, Debian CentOS, Fedora, Suse, Red Hat, Arch, Alpine, Gentoo, even BusyBox](https://learn.netdata.cloud/docs/installing/one-line-installer-for-all-linux-systems).
- Install with [Docker](https://learn.netdata.cloud/docs/installing/docker).
@@ -144,9 +166,11 @@ It scales nicely from just a single server to thousands of servers, even in comp
- Install [from source](https://learn.netdata.cloud/docs/installing/build-the-netdata-agent-yourself/compile-from-source-code) ![github downloads](https://img.shields.io/github/downloads/netdata/netdata/total?color=success&logo=github)
- For Kubernetes deployments [check here](https://learn.netdata.cloud/docs/installation/install-on-specific-environments/kubernetes/).
+ Check also the [Netdata Deployment Strategies](https://learn.netdata.cloud/docs/architecture/deployment-strategies) to decide how to deploy it in your infrastructure.
+
### 2. **Configure Collectors** :boom:
- Netdata auto-detects and auto-discovers most operating system data sources and applications. However, many data sources require some manual configuration, usually to allow Netdata get access to the metrics.
+ Netdata auto-detects and auto-discovers most operating system data sources and applications. However, many data sources require some manual configuration, usually to allow Netdata to get access to the metrics.
- For a detailed list of the 800+ collectors available, check [this guide](https://learn.netdata.cloud/docs/data-collection/).
- To monitor Windows servers and applications use [this guide](https://learn.netdata.cloud/docs/data-collection/monitor-anything/system-metrics/windows-machines).
@@ -183,15 +207,15 @@ It scales nicely from just a single server to thousands of servers, even in comp
You can also use Netdata Parents to:
- - Offload your production systems (the parents runs ML, alerts, queries, etc for all its children)
- - Secure your production systems (the parents accept user connections, for all its children)
+ - Offload your production systems (the parents run ML, alerts, queries, etc. for all their children)
+ - Secure your production systems (the parents accept user connections, for all their children)
### 5. **Connect to Netdata Cloud** :cloud:
Optionally, [sign-in](https://app.netdata.cloud/sign-in) to [Netdata Cloud](https://www.netdata.cloud/) and claim your Netdata Agents and Parents.
If you connect your Netdata Parents, there is no need to connect your Netdata Agents. They will be connected via the Parents.
- When your Netdata are connected to Netdata Cloud, you can (on top of the above):
+ When your Netdata nodes are connected to Netdata Cloud, you can (on top of the above):
- Organize your infra in spaces and rooms
- Create, manage, and share **custom dashboards**
@@ -256,10 +280,40 @@ Each Netdata Agent can perform the following functions:
Provide an API to query the data and present interactive dashboards to users.
9. **`SCORE` metrics to reveal similarities and patterns**
- Score the metrics according to given criteria, to find the needle in the haystack.
+ Score the metrics according to the given criteria, to find the needle in the haystack.
When using Netdata Parents, all the functions of a Netdata Agent (except data collection) can be delegated to Parents to offload production systems.
+The core of Netdata is developed in C. We have our own `libnetdata`, that provides:
+
+- **`DICTIONARY`**
+ A high-performance algorithm to maintain both indexed and ordered pools of structures Netdata needs. It uses JudyHS arrays for indexing, although it is modular: any hashtable or tree can be integrated into it. Despite being in C, dictionaries follow object-oriented programming principles, so there are constructors, destructors, automatic memory management, garbage collection, and more. For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/dictionary).
+
+- **`ARAL`**
+ ARray ALlocator (ARAL) is used to minimize the system allocations made by Netdata. ARAL is optimized for peak performance when multi-threaded. It also allows all structures that use it to be allocated in memory-mapped files (shared memory) instead of RAM. For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/aral).
+
+- **`PROCFILE`**
+ A high-performance `/proc` (but also any) file parser and text tokenizer. It achieves its performance by keeping files open and adjustings its buffers to read the entire file in one call (which is also required by the Linux kernel). For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/procfile).
+
+- **`STRING`**
+ A string internet mechanism, for string deduplication and indexing (using JudyHS arrays), optimized for multi-threaded usage. For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/string).
+
+- **`ARL`**
+ Adaptive Resortable List (ARL), is a very fast list iterator, that keeps the expected items on the list in the same order they are found in input list. So, the first iteration is somewhat slower, but all the following iterations are perfectly aligned for best performance. For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/adaptive_resortable_list).
+
+- **`BUFFER`**
+ A flexible text buffer management system that allows Netdata to automatically handle dynamically sized text buffer allocations. The same mechanism is used for generating consistent JSON output by the Netdata APIs. For more see [here](https://github.com/netdata/netdata/tree/master/libnetdata/buffer).
+
+- **`SPINLOCK`**
+ Like POSIX `MUTEX` and `RWLOCK` but a lot faster, based on atomic operations, with significantly smaller memory impact, while being portable.
+
+- **`PGC`**
+ A caching layer that can be used to cache any kind of time-related data, with automatic indexing (based on a tree of JudyL arrays), memory management, evictions, flushing, pressure management. This is extensively used in `dbengine`. For more see [here](https://github.com/netdata/netdata/blob/master/database/engine/README.md).
+
+The above, and many more, allow Netdata developers to work on the application fast and with confidence. Most of the business logic in Netdata is a work of mixing the above.
+
+Netdata data collection plugins can be developed in any language. Most of our application collectors though are developed in [Go](https://github.com/netdata/go.d.plugin).
+
## FAQ
@@ -331,12 +385,16 @@ Netdata is designed to scale and can handle large volumes of data.
Netdata is a distributed monitoring solution. You can scale it to infinity by spreading Netdata servers across your infrastructure.
-With the streaming feature of Netdata Agents, we can support monitoring ephemeral servers, but also allow the creation of "monitoring islands" where metrics are aggregated to a few servers (Netdata Parents) for increased retention, or for offloading production systems.
+With the streaming feature of the Agent, we can support monitoring ephemeral servers but also allow the creation of "monitoring islands" where metrics are aggregated to a few servers (Netdata Parents) for increased retention, or for offloading production systems.
- - :airplane: Netdata Parents provide great vertical scalability, so you can have as big parents as the CPU, RAM and Disk resources you can dedicate to them. In our lab we constantly stress test Netdata Parents with about 2 million metrics collected per second.
+ - :airplane: Netdata Parents provide great vertical scalability, so you can have as big parents as the CPU, RAM and Disk resources you can dedicate to them. In our lab we constantly stress test Netdata Parents with several million metrics collected per second, to ensure it is reliable, stable, and robust at scale.
- :rocket: In addition, Netdata Cloud provides virtually unlimited horizontal scalability. It "merges" all the Netdata parents you have into one unified infrastructure at query time. Netdata Cloud itself is probably the biggest single installation monitoring platform ever created, currently monitoring about 100k online servers with about 10k servers changing state (added/removed) per day!
+Example: the following chart comes from a single Netdata Parent. As you can see on it, 244 nodes stream to it metrics of about 20k running containers. On this specific chart there are 3 dimensions per container, so a total of about 60k time-series queries are needed to present it.
+
+![image](https://github.com/netdata/netdata/assets/2662304/33db4aed-86af-4018-a547-e70643308f25)
+
@@ -347,14 +405,20 @@ Yes, you can!
Click to see detailed answer ...
-We suggest the following:
+Netdata has been designed to spread disk writes across time. Each metric is flushed to disk every 17 minutes, but metrics are flushed evenly across time, at an almost constant rate. Also, metrics are packed into bigger blocks we call `extents` and are compressed with LZ4 before saving them, to minimize the number of I/O operations made.
+
+Single node Agents (not Parents), should have a constant rate of about 50 KiB/s or less, with some spikes above that every minute (flushing of tier 1) and higher spikes every hour (flushing of tier 2).
+
+Health Alerts and Machine-Learning run queries to evaluate their expressions and learn from the metrics' patterns. These are also spread over time, so there should be an almost constant read rate too.
+
+To make Netdata not use the disks at all, we suggest the following:
1. Use database mode `alloc` or `ram` to disable writing metric data to disk.
2. Configure streaming to push in real-time all metrics to a Netdata Parent. The Netdata Parent will maintain metrics on disk for this node.
3. Disable ML and health on this node. The Netdata Parent will do them for this node.
4. Use the Netdata Parent to access the dashboard.
-Using the above, the Netdata Agent on your production system will not need a disk.
+Using the above, the Netdata Agent on your production system will not use a disk.
@@ -366,27 +430,112 @@ Netdata is a "ready to use" monitoring solution. Prometheus and Grafana are tool
Click to see detailed answer ...
-First we have to say that Prometheus as a time-series database and Grafana as a visualizer are excellent tools for what they do.
+First, we have to say that Prometheus as a time-series database and Grafana as a visualizer are excellent tools for what they do.
However, we believe that such a setup is missing a key element: A Prometheus and Grafana setup assumes that you know everything about the metrics you collect and you understand deeply how they are structured, they should be queried and visualized.
-In reality this setup has a lot of problems. The vast number of technologies, operating systems, and applications we use in our modern stacks, makes it impossible for any single person to know and understand everything about anything. We get testimonials regularly from Netdata users across the biggest enterprises, that Netdata manages to reveal issues, anomalies and problems they were not aware of and they didn't even have the means to find or troubleshoot.
+In reality, this setup has a lot of problems. The vast number of technologies, operating systems, and applications we use in our modern stacks, makes it impossible for any single person to know and understand everything about anything. We get testimonials regularly from Netdata users across the biggest enterprises, that Netdata manages to reveal issues, anomalies and problems they were not aware of and they didn't even have the means to find or troubleshoot.
-So, the biggest difference of Netdata to Prometheus and Grafana, is that we decided that the tool needs to have a much better understanding of the components, the applications and the metrics it monitors.
+So, the biggest difference of Netdata to Prometheus, and Grafana, is that we decided that the tool needs to have a much better understanding of the components, the applications, and the metrics it monitors.
- - When compared to Prometheus, Netdata needs for each metric much more than just a name, some labels and a value over time. A metric in Netdata is a structured entity that correlates with other metrics in a certain way, has specific attributes that depict how it should be organized, treated, queried and visualized. We call this the NIDL (Nodes, Instances, Dimensions, Labels) framework.
+ - When compared to Prometheus, Netdata needs for each metric much more than just a name, some labels, and a value over time. A metric in Netdata is a structured entity that correlates with other metrics in a certain way and has specific attributes that depict how it should be organized, treated, queried, and visualized. We call this the NIDL (Nodes, Instances, Dimensions, Labels) framework.
- To maintain such an index is a challenge: first because the raw metrics collected do not provide this information, so we have to add it, and second because we need to maintain this index for the lifetime of each metric, which with our current database retention, it is usually more than a year.
+ Maintaining such an index is a challenge: first, because the raw metrics collected do not provide this information, so we have to add it, and second because we need to maintain this index for the lifetime of each metric, which with our current database retention, it is usually more than a year.
- When compared to Grafana, Netdata is fully automated. Grafana has more customization capabilities than Netdata, but Netdata presents fully functional dashboards by itself and most importantly it gives you the means to understand, analyze, filter, slice and dice the data without the need for you to edit queries or be aware of any peculiarities the underlying metrics may have.
- Furthermore, to help you when you need to find the needle in the haystack, Netdata has advanced troubleshooting tools provided by the Netdata metrics scoring engine, that allows it to score metrics based on their anomaly rate, their differences or similarities for any given time-frame.
+ Furthermore, to help you when you need to find the needle in the haystack, Netdata has advanced troubleshooting tools provided by the Netdata metrics scoring engine, that allows it to score metrics based on their anomaly rate, their differences or similarities for any given time frame.
Still, if you are already familiar with Prometheus and Grafana, Netdata integrates nicely with them, and we have reports from users who use Netdata with Prometheus and Grafana in production.
+### :raised_eyebrow: How is Netdata different from DataDog, New Relic, Dynatrace, X SaaS Provider?
+
+With Netdata your data are always on-prem and your metrics are always high-resolution.
+
+Click to see detailed answer ...
+
+
+Most commercial monitoring providers face a significant challenge: they centralize all metrics to their infrastructure and this is, inevitably, expensive. It leads them to one or more of the following:
+
+ 1. be unrealistically expensive
+ 2. limit the number of metrics they collect
+ 3. limit the resolution of the metrics they collect
+
+As a result, they try to find a balance: collect the least possible data, but collect enough to have something useful out of it.
+
+We, at Netdata, see monitoring in a completely different way: **monitoring systems should be built bottom-up and be rich in insights**, so we focus on each component individually to collect, store, check and visualize everything related to each of them, and we make sure that all components are monitored. Each metric is important.
+
+This is why Netdata trains multiple machine-learning models per metric, based exclusively on their own past (no sampling of data, no sharing of trained models) to detect anomalies based on the specific use case and workload each component is used.
+
+This is also why Netdata alerts are attached to components (instances) and are configured with dynamic thresholds and rolling windows, instead of static values.
+
+The distributed nature of Netdata helps scale this approach: your data is spread inside your infrastructure, as close to the edge as possible. Netdata is not one data lane. Each Netdata Agent is a data lane and all of them together build a massive distributed metrics processing pipeline that ensures all your infrastructure components and applications are monitored and operating as they should.
+
+
+
+
+### :raised_eyebrow: How is Netdata different from Nagios, Icinga, Zabbix, etc?
+
+Netdata offers real-time, comprehensive monitoring, with a user-friendly interface and the ability to monitor everything, without any custom configuration required.
+
+Click to see detailed answer ...
+
+
+While Nagios, Icinga, Zabbix, and other similar tools are powerful and highly customizable, they can be complex to set up and manage. Their flexibility often comes at the cost of ease-of-use, especially for users who are not systems administrators or do not have extensive experience with these tools. Additionally, these tools generally require you to know what you want to monitor in advance and configure it explicitly.
+
+Netdata, on the other hand, takes a different approach. It provides a "ready to use" monitoring solution with a focus on simplicity and comprehensiveness. It automatically detects and starts monitoring many different system metrics and applications out-of-the-box, without any need for custom configuration.
+
+In comparison to these traditional monitoring tools, Netdata:
+
+ - Provides real-time, high-resolution metrics, as opposed to the often minute-level granularity that tools like Nagios, Icinga, and Zabbix provide.
+
+ - Automatically generates meaningful, organized, and interactive visualizations of the collected data. Unlike other tools, where you have to manually create and organize graphs and dashboards, Netdata takes care of this for you.
+
+ - Applies machine learning to each individual metric to detect anomalies, providing more insightful and relevant alerts than static thresholds.
+
+ - Is designed to be distributed, so your data is spread inside your infrastructure, as close to the edge as possible. This approach is more scalable and avoids the potential bottleneck of a single centralized server.
+
+ - Has a more modern and user-friendly interface, making it easy for anyone, not just experienced administrators, to understand the health and performance of their systems.
+
+Even if you're already using Nagios, Icinga, Zabbix, or similar tools, you can use Netdata alongside them to augment your existing monitoring capabilities with real-time insights and user-friendly dashboards.
+
+
+
+
+### :flushed: I feel overwhelmed by the amount of information in Netdata. What should I do?
+
+Netdata is designed to provide comprehensive insights, but we understand that the richness of information might sometimes feel overwhelming. Here are some tips on how to navigate and utilize Netdata effectively...
+
+Click to see detailed answer ...
+
+
+Netdata is indeed a very comprehensive monitoring tool. It's designed to provide you with as much information as possible about your system and applications, so that you can understand and address any issues that arise. However, we understand that the sheer amount of data can sometimes be overwhelming.
+
+Here are some suggestions on how to manage and navigate this wealth of information:
+
+ 1. **Start with the Overview Dashboard**
+ Netdata's Overview Dashboard provides a high-level summary of your system's status. We have added summary tiles on almost every section, you reveal the information that is more important. This is a great place to start, as it can help you identify any major issues or trends at a glance.
+
+ 2. **Use the Search Feature**
+ If you're looking for specific information, you can use the search feature to find the relevant metrics or charts. This can help you avoid scrolling through all the data.
+
+ 3. **Customize your Dashboards**
+ Netdata allows you to create custom dashboards, which can help you focus on the metrics that are most important to you. Sign-in to Netdata and there you can have your custom dashboards. (coming soon to the agent dashboard too)
+
+ 4. **Leverage Netdata's Anomaly Detection**
+ Netdata uses machine learning to detect anomalies in your metrics. This can help you identify potential issues before they become major problems. We have added an `AR` button above the dashboard table of contents to reveal the anomaly rate per section so that you can easily spot what could need your attention.
+
+ 5. **Take Advantage of Netdata's Documentation and Blogs**
+ Netdata has extensive documentation that can help you understand the different metrics and how to interpret them. You can also find tutorials, guides, and best practices there.
+
+Remember, it's not necessary to understand every single metric or chart right away. Netdata is a powerful tool, and it can take some time to fully explore and understand all of its features. Start with the basics and gradually delve into more complex metrics as you become more comfortable with the tool.
+
+
+
+
### :cloud: Do I have to subscribe to Netdata Cloud?
Subscribing to Netdata Cloud is optional but many users find it enhances their experience with Netdata.
@@ -403,21 +552,96 @@ The Netdata Agent dashboard and the Netdata Cloud dashboard are the same. Still,
5. Central Dispatch of Alert Notifications (even when multiple independent parents are involved)
6. Mobile App for Alert Notifications (coming soon)
-So, although it is not required, you can get the most out of your Netdata installation by using Netdata Cloud.
+So, although it is not required, you can get the most out of your Netdata setup by using Netdata Cloud.
+
+We encourage you to support Netdata by buying a Netdata Cloud subscription. A successful Netdata is a Netdata that evolves and gets improved to provide a simpler, faster and easier monitoring for all of us.
+
+For organizations that need a fully on-prem solution, we provide Netdata Cloud for on-prem installation. [Contact us for more information](mailto:info@netdata.cloud).
+
+
+
+
+### :mag_right: What does the anonymous telemetry collected by Netdata entail?
+
+Your privacy is our utmost priority. As part of our commitment to improving Netdata, we rely on anonymous telemetry data from our users who choose to leave it enabled. This data greatly informs our decision-making processes and contributes to the future evolution of Netdata.
+
+Should you wish to disable telemetry, instructions for doing so are provided in our installation guides.
+
+Click to see detailed answer ...
+
+
+Netdata is in a constant state of growth and evolution. The decisions that guide this development are ideally rooted in data. By analyzing anonymous telemetry data, we can answer questions such as: "What features are being used frequently?", "How do we prioritize between potential new features?" and "What elements of Netdata are most important to our users?"
+
+By leaving anonymous telemetry enabled, users indirectly contribute to shaping Netdata's roadmap, providing invaluable information that helps us prioritize our efforts for the project and the community.
+
+We are aware that for privacy or regulatory reasons, not all environments can allow telemetry. To cater to this, we have simplified the process of disabling telemetry:
+
+- During installation, you can append `--disable-telemetry` to our `kickstart.sh` script, or
+- Create the file `/etc/netdata/.opt-out-from-anonymous-statistics` and then restart Netdata.
+
+These steps will disable the anonymous telemetry for your Netdata installation.
+
+Please note, even with telemetry disabled, Netdata still requires a [Netdata Registry](https://learn.netdata.cloud/docs/configuring/securing-netdata-agents/registry) for alert notifications' Call To Action (CTA) functionality. When you click an alert notification, it redirects you to the Netdata Registry, which then directs your web browser to the specific Netdata Agent that issued the alert for further troubleshooting. The Netdata Registry learns the URLs of your agents when you visit their dashboards.
+
+Any Netdata Agent can act as a Netdata Registry. Simply designate one Netdata Agent as your registry, and our global Netdata Registry will no longer be in use. For further information on this, please refer to [this guide](https://learn.netdata.cloud/docs/configuring/securing-netdata-agents/registry).
+
+
+
+
+### :smirk: Who uses Netdata?
+
+Netdata is a widely adopted project...
+
+Click to see detailed answer ...
+
+
+Browse the [Netdata stargazers on GitHub](https://github.com/netdata/netdata/stargazers) to discover users from renowned companies and enterprises, such as AMD, Amazon, Baidu, Cisco, Delta, Facebook, IBM, Intel, Netflix, Qualcomm, Riot Games, SAP, Samsung, Unity, Valve, and many others.
+
+Netdata also enjoys significant usage in academia, with notable institutions including New York University, Columbia University, New Jersey University, among several others.
+
+And, Netdata is also used by numerous governmental organizations worldwide.
+
+In a nutshell, Netdata proves invaluable for:
+
+- **Infrastructure intensive organizations**
+ Such as hosting/cloud providers and companies with hundreds or thousands of nodes, who require a high-resolution, real-time monitoring solution for a comprehensive view of all their components and applications.
+
+- **Technology operators**
+ Those in need of a standardized, comprehensive solution for round-the-clock operations. Netdata not only facilitates operational automation and provides controlled access for their operations engineers, but also enhances skill development over time.
+
+- **Technology startups**
+ Who seek a feature-rich monitoring solution from the get-go.
+
+- **Freelancers**
+ Who seek a simple, efficient and straightforward solution without sacrificing performance and outcomes.
+
+- **Professional SysAdmins and DevOps**
+ Who appreciate the fine details and understand the value of holistic monitoring from the ground up.
+
+- **Everyone else**
+ All of us, who are tired of the inefficiency in the monitoring industry and would love a refreshing change and a breath of fresh air. :slightly_smiling_face:
-### :office: Who uses Netdata?
+### :globe_with_meridians: Is Netdata open-source?
-Netdata is a popular project. Almost everyone uses it.
+The Netdata Agent back-end is entirely open-source. We ship 3 different versions of the UI: 2 open-source versions and 1 closed-source version.
Click to see detailed answer ...
-Check its [stargazers on github](https://github.com/netdata/netdata/stargazers). You will find people from quite popular companies and enterprises, including: SAP, Qualcomm, IBM, Amazon, Intel, AMD, Unity, Baidu, Cisco, Samsung, Netflix, Facebook and hundreds more.
+The entire back-end of the Netdata Agent is open-source, licensed under GPLv3+. We don't develop a separate enterprise version. All users, including commercial ones, use the same Netdata Agent.
+
+The Netdata Agent is shipped with multiple UI versions:
+
+- `http://agent.ip:19999/v0/`, the original open-source single-node UI, GPLv3+.
+- `http://agent.ip:19999/v1/`, the latest open-source single-node UI, GPLv3+.
+- `http://agent.ip:19999/v2/`, a snapshot of the latest Netdata Cloud UI as it was at the time the agent was released, licensed to be distributed with Netdata Agents under [NCUL1](https://github.com/netdata/netdata/blob/master/web/gui/v2/LICENSE.md).
-Netdata is also popular in universities, including New York University, Columbia University, New Jersey University, and dozens more.
+When you access a Netdata Agent via `http://agent.ip:19999/` a splash screen attempts to use the latest live version of Netdata Cloud UI (downloaded from Cloudflare). This only happens when the web browser has internet connectivity and Netdata Cloud is not disabled at the agent configuration. Otherwise, it falls back to `http://agent.ip:19999/v2/`.
+
+The Netdata Cloud UI is not open-source. But we thought that it is to the benefit of the community to allow everyone to use it directly with Netdata Agents, for free, even if Netdata Cloud is not used.
@@ -442,11 +666,16 @@ Netdata is an inclusive open-source project and community. Please read our [Code
Join the Netdata community:
- Chat with us and other community members on [Discord](https://discord.com/invite/mPZ6WZKKG2).
-- Start a discussion on [Github discussions](https://github.com/netdata/netdata/discussions).
+- Start a discussion on [GitHub discussions](https://github.com/netdata/netdata/discussions).
- Open a topic to our [community forums](https://community.netdata.cloud).
-> You can also find Netdata on:
-> [Twitter](https://twitter.com/linuxnetdata) | [YouTube](https://www.youtube.com/c/Netdata) | [Reddit](https://www.reddit.com/r/netdata/) | [LinkedIn](https://www.linkedin.com/company/netdata-cloud/) | [StackShare](https://stackshare.io/netdata) | [Product Hunt](https://www.producthunt.com/posts/netdata-monitoring-agent/) | [Repology](https://repology.org/metapackage/netdata/versions) | [Facebook](https://www.facebook.com/linuxnetdata/)
+> **Meet Up** :people_holding_hands::people_holding_hands::people_holding_hands:
+> The Netdata team and community members have regular online meetups, usually every 2 weeks.
+> **You are welcome to join us!**
+> [Click here for the schedule](https://www.meetup.com/netdata/events/).
+
+You can also find Netdata on:
+[Twitter](https://twitter.com/linuxnetdata) | [YouTube](https://www.youtube.com/c/Netdata) | [Reddit](https://www.reddit.com/r/netdata/) | [LinkedIn](https://www.linkedin.com/company/netdata-cloud/) | [StackShare](https://stackshare.io/netdata) | [Product Hunt](https://www.producthunt.com/posts/netdata-monitoring-agent/) | [Repology](https://repology.org/metapackage/netdata/versions) | [Facebook](https://www.facebook.com/linuxnetdata/)
## :pray: Contribute
@@ -458,15 +687,15 @@ What is a contribution? All the following are highly valuable to Netdata:
Netdata should out-of-the-box detect as many infrastructure issues as possible. By sharing your knowledge and experiences, you help us build a monitoring solution that has baked into it all the best-practices about infrastructure monitoring.
2. **Let us know if Netdata is not perfect for your use case**
- We aim to support as many use cases as possible and your feedback can be invaluable. Open a github issue, or start a github discussion about it, to discuss how you want to use Netdata and what you need.
+ We aim to support as many use cases as possible and your feedback can be invaluable. Open a GitHub issue, or start a GitHub discussion about it, to discuss how you want to use Netdata and what you need.
Although we can't implement everything imaginable, we try to prioritize development on use-cases that are common to our community, are in the same direction we want Netdata to evolve and are aligned with our roadmap.
-4. **Support other community members**
- Join our community on Github, Discord and Reddit. Generally, Netdata is relatively easy to setup and configure, but still people may need a little push in the right direction to use it effectively. Supporting other members is a great contribution by itself!
+3. **Support other community members**
+ Join our community on GitHub, Discord and Reddit. Generally, Netdata is relatively easy to set up and configure, but still people may need a little push in the right direction to use it effectively. Supporting other members is a great contribution by itself!
-5. **Add or improve integrations you need**
- Integrations are generally easier and simpler to develop. If you want to contribute code to Netdata, we suggest to start with integrations you need and Netdata may not currently support.
+4. **Add or improve integrations you need**
+ Integrations tend to be easier and simpler to develop. If you would like to contribute your code to Netdata, we suggest that you start with the integrations you need, which Netdata does not currently support.
General information about contributions:
@@ -480,5 +709,7 @@ instructions on building each Netdata component from the source and preparing a
## License
-The Netdata Agent is [GPLv3+](https://github.com/netdata/netdata/blob/master/LICENSE). Netdata re-distributes other open-source tools and libraries. Please check the
+Netdata is released under [GPLv3+](https://github.com/netdata/netdata/blob/master/LICENSE). Netdata re-distributes other open-source tools and libraries. Please check the
[third party licenses](https://github.com/netdata/netdata/blob/master/REDISTRIBUTED.md).
+
+The Latest Netdata UI, is distributed under [NCUL1](https://github.com/netdata/netdata/blob/master/web/gui/v2/LICENSE.md). It also uses third party open source components. Check the [UI third party licenses](https://github.com/netdata/netdata/blob/master/web/gui/v2/3D_PARTY_LICENSES.txt)
diff --git a/aclk/README.md b/aclk/README.md
index 4f4693025..c853c2324 100644
--- a/aclk/README.md
+++ b/aclk/README.md
@@ -12,7 +12,7 @@ The Cloud App lives at app.netdata.cloud which currently resolves to the followi
> ### Caution
>
->This list of IPs can change without notice, we strongly advise you to whitelist following domains `api.netdata.cloud`, `mqtt.netdata.cloud`, if this is not an option in your case always verify the current domain resolution (e.g via the `host` command).
+>This list of IPs can change without notice, we strongly advise you to whitelist following domains `app.netdata.cloud`, `mqtt.netdata.cloud`, if this is not an option in your case always verify the current domain resolution (e.g via the `host` command).
For a guide to connecting a node using the ACLK, plus additional troubleshooting and reference information, read our [connect to Cloud
documentation](https://github.com/netdata/netdata/blob/master/claim/README.md).
@@ -35,7 +35,7 @@ configuration uses two settings:
```conf
[global]
enabled = yes
- cloud base url = https://api.netdata.cloud
+ cloud base url = https://app.netdata.cloud
```
If your Agent needs to use a proxy to access the internet, you must [set up a proxy for
@@ -96,7 +96,7 @@ must contain only `EOF`.
```bash
[global]
enabled = no
- cloud base url = https://api.netdata.cloud
+ cloud base url = https://app.netdata.cloud
EOF
```
diff --git a/aclk/aclk_otp.c b/aclk/aclk_otp.c
index 46d0f6213..99b2adea2 100644
--- a/aclk/aclk_otp.c
+++ b/aclk/aclk_otp.c
@@ -414,6 +414,10 @@ int aclk_send_otp_response(const char *agent_id, const unsigned char *response,
aclk_parse_otp_error(resp.payload);
goto cleanup_response;
}
+ if (resp.payload_size == 0 || resp.payload == NULL) {
+ netdata_log_error("ACLK_OTP Password response payload is empty despite returning 201 Created!");
+ goto cleanup_response;
+ }
netdata_log_info("ACLK_OTP Got Password from Cloud");
if (parse_passwd_response(resp.payload, mqtt_auth)){
diff --git a/aclk/https_client.c b/aclk/https_client.c
index 62f99aab6..623082027 100644
--- a/aclk/https_client.c
+++ b/aclk/https_client.c
@@ -10,6 +10,8 @@
#include "daemon/global_statistics.h"
+#define DEFAULT_CHUNKED_RESPONSE_BUFFER_SIZE (4096)
+
enum http_parse_state {
HTTP_PARSE_INITIAL = 0,
HTTP_PARSE_HEADERS,
@@ -29,10 +31,27 @@ static const char *http_req_type_to_str(http_req_type_t req) {
}
}
+#define TRANSFER_ENCODING_CHUNKED (-2)
+
typedef struct {
enum http_parse_state state;
int content_length;
int http_code;
+
+ // for chunked data only
+ char *chunked_response;
+ size_t chunked_response_size;
+ size_t chunked_response_written;
+
+ enum chunked_content_state {
+ CHUNKED_CONTENT_CHUNK_SIZE = 0,
+ CHUNKED_CONTENT_CHUNK_DATA,
+ CHUNKED_CONTENT_CHUNK_END_CRLF,
+ CHUNKED_CONTENT_FINAL_CRLF
+ } chunked_content_state;
+
+ size_t chunk_size;
+ size_t chunk_got;
} http_parse_ctx;
#define HTTP_PARSE_CTX_INITIALIZER { .state = HTTP_PARSE_INITIAL, .content_length = -1, .http_code = 0 }
@@ -50,17 +69,40 @@ static inline void http_parse_ctx_clear(http_parse_ctx *ctx) {
#define HTTP_LINE_TERM "\x0D\x0A"
#define RESP_PROTO "HTTP/1.1 "
#define HTTP_KEYVAL_SEPARATOR ": "
-#define HTTP_HDR_BUFFER_SIZE 256
+#define HTTP_HDR_BUFFER_SIZE 1024
#define PORT_STR_MAX_BYTES 12
-static void process_http_hdr(http_parse_ctx *parse_ctx, const char *key, const char *val)
+static int process_http_hdr(http_parse_ctx *parse_ctx, const char *key, const char *val)
{
- // currently we care only about content-length
- // but in future the way this is written
- // it can be extended
+ // currently we care only about specific headers
+ // we can skip the rest
if (!strcmp("content-length", key)) {
+ if (parse_ctx->content_length == TRANSFER_ENCODING_CHUNKED) {
+ netdata_log_error("Content-length and transfer-encoding: chunked headers are mutually exclusive");
+ return 1;
+ }
+ if (parse_ctx->content_length != -1) {
+ netdata_log_error("Duplicate content-length header");
+ return 1;
+ }
parse_ctx->content_length = atoi(val);
+ if (parse_ctx->content_length < 0) {
+ netdata_log_error("Invalid content-length %d", parse_ctx->content_length);
+ return 1;
+ }
+ return 0;
}
+ if (!strcmp("transfer-encoding", key)) {
+ if (!strcmp("chunked", val)) {
+ if (parse_ctx->content_length != -1) {
+ netdata_log_error("Content-length and transfer-encoding: chunked headers are mutually exclusive");
+ return 1;
+ }
+ parse_ctx->content_length = TRANSFER_ENCODING_CHUNKED;
+ }
+ return 0;
+ }
+ return 0;
}
static int parse_http_hdr(rbuf_t buf, http_parse_ctx *parse_ctx)
@@ -100,11 +142,105 @@ static int parse_http_hdr(rbuf_t buf, http_parse_ctx *parse_ctx)
for (ptr = buf_key; *ptr; ptr++)
*ptr = tolower(*ptr);
- process_http_hdr(parse_ctx, buf_key, buf_val);
+ if (process_http_hdr(parse_ctx, buf_key, buf_val))
+ return 1;
return 0;
}
+static inline void chunked_response_buffer_grow_by(http_parse_ctx *parse_ctx, size_t size)
+{
+ if (unlikely(parse_ctx->chunked_response_size == 0)) {
+ parse_ctx->chunked_response = mallocz(size);
+ parse_ctx->chunked_response_size = size;
+ return;
+ }
+ parse_ctx->chunked_response = reallocz((void *)parse_ctx->chunked_response, parse_ctx->chunked_response_size + size);
+ parse_ctx->chunked_response_size += size;
+}
+
+static int process_chunked_content(rbuf_t buf, http_parse_ctx *parse_ctx)
+{
+ int idx;
+ size_t bytes_to_copy;
+
+ do {
+ switch (parse_ctx->chunked_content_state) {
+ case CHUNKED_CONTENT_CHUNK_SIZE:
+ if (!rbuf_find_bytes(buf, HTTP_LINE_TERM, strlen(HTTP_LINE_TERM), &idx)) {
+ if (rbuf_bytes_available(buf) >= rbuf_get_capacity(buf))
+ return PARSE_ERROR;
+ return NEED_MORE_DATA;
+ }
+ if (idx == 0) {
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_FINAL_CRLF;
+ continue;
+ }
+ if (idx >= HTTP_HDR_BUFFER_SIZE) {
+ netdata_log_error("Chunk size is too long");
+ return PARSE_ERROR;
+ }
+ char buf_size[HTTP_HDR_BUFFER_SIZE];
+ rbuf_pop(buf, buf_size, idx);
+ buf_size[idx] = 0;
+ long chunk_size = strtol(buf_size, NULL, 16);
+ if (chunk_size < 0 || chunk_size == LONG_MAX) {
+ netdata_log_error("Chunk size out of range");
+ return PARSE_ERROR;
+ }
+ parse_ctx->chunk_size = chunk_size;
+ if (parse_ctx->chunk_size == 0) {
+ if (errno == EINVAL) {
+ netdata_log_error("Invalid chunk size");
+ return PARSE_ERROR;
+ }
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_CHUNK_END_CRLF;
+ continue;
+ }
+ parse_ctx->chunk_got = 0;
+ chunked_response_buffer_grow_by(parse_ctx, parse_ctx->chunk_size);
+ rbuf_bump_tail(buf, strlen(HTTP_LINE_TERM));
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_CHUNK_DATA;
+ // fallthrough
+ case CHUNKED_CONTENT_CHUNK_DATA:
+ if (!(bytes_to_copy = rbuf_bytes_available(buf)))
+ return NEED_MORE_DATA;
+ if (bytes_to_copy > parse_ctx->chunk_size - parse_ctx->chunk_got)
+ bytes_to_copy = parse_ctx->chunk_size - parse_ctx->chunk_got;
+ rbuf_pop(buf, parse_ctx->chunked_response + parse_ctx->chunked_response_written, bytes_to_copy);
+ parse_ctx->chunk_got += bytes_to_copy;
+ parse_ctx->chunked_response_written += bytes_to_copy;
+ if (parse_ctx->chunk_got != parse_ctx->chunk_size)
+ continue;
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_CHUNK_END_CRLF;
+ // fallthrough
+ case CHUNKED_CONTENT_FINAL_CRLF:
+ case CHUNKED_CONTENT_CHUNK_END_CRLF:
+ if (rbuf_bytes_available(buf) < strlen(HTTP_LINE_TERM))
+ return NEED_MORE_DATA;
+ char buf_crlf[strlen(HTTP_LINE_TERM)];
+ rbuf_pop(buf, buf_crlf, strlen(HTTP_LINE_TERM));
+ if (memcmp(buf_crlf, HTTP_LINE_TERM, strlen(HTTP_LINE_TERM))) {
+ netdata_log_error("CRLF expected");
+ return PARSE_ERROR;
+ }
+ if (parse_ctx->chunked_content_state == CHUNKED_CONTENT_FINAL_CRLF) {
+ if (parse_ctx->chunked_response_size != parse_ctx->chunked_response_written)
+ netdata_log_error("Chunked response size mismatch");
+ chunked_response_buffer_grow_by(parse_ctx, 1);
+ parse_ctx->chunked_response[parse_ctx->chunked_response_written] = 0;
+ return PARSE_SUCCESS;
+ }
+ if (parse_ctx->chunk_size == 0) {
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_FINAL_CRLF;
+ continue;
+ }
+ parse_ctx->chunked_content_state = CHUNKED_CONTENT_CHUNK_SIZE;
+ continue;
+ }
+ } while(1);
+}
+
static int parse_http_response(rbuf_t buf, http_parse_ctx *parse_ctx)
{
int idx;
@@ -154,6 +290,9 @@ static int parse_http_response(rbuf_t buf, http_parse_ctx *parse_ctx)
break;
case HTTP_PARSE_CONTENT:
// replies like CONNECT etc. do not have content
+ if (parse_ctx->content_length == TRANSFER_ENCODING_CHUNKED)
+ return process_chunked_content(buf, parse_ctx);
+
if (parse_ctx->content_length < 0)
return PARSE_SUCCESS;
@@ -312,37 +451,39 @@ static int read_parse_response(https_req_ctx_t *ctx) {
}
ctx->poll_fd.events = 0;
- ptr = rbuf_get_linear_insert_range(ctx->buf_rx, &size);
+ do {
+ ptr = rbuf_get_linear_insert_range(ctx->buf_rx, &size);
- if (ctx->ssl_ctx)
- ret = SSL_read(ctx->ssl, ptr, size);
- else
- ret = read(ctx->sock, ptr, size);
+ if (ctx->ssl_ctx)
+ ret = SSL_read(ctx->ssl, ptr, size);
+ else
+ ret = read(ctx->sock, ptr, size);
- if (ret > 0) {
- rbuf_bump_head(ctx->buf_rx, ret);
- } else {
- if (ctx->ssl_ctx) {
- ret = SSL_get_error(ctx->ssl, ret);
- switch (ret) {
- case SSL_ERROR_WANT_READ:
- ctx->poll_fd.events |= POLLIN;
- break;
- case SSL_ERROR_WANT_WRITE:
- ctx->poll_fd.events |= POLLOUT;
- break;
- default:
- netdata_log_error("SSL_read Err: %s", _ssl_err_tos(ret));
- return 3;
- }
+ if (ret > 0) {
+ rbuf_bump_head(ctx->buf_rx, ret);
} else {
- if (errno != EAGAIN && errno != EWOULDBLOCK) {
- netdata_log_error("write error");
- return 3;
+ if (ctx->ssl_ctx) {
+ ret = SSL_get_error(ctx->ssl, ret);
+ switch (ret) {
+ case SSL_ERROR_WANT_READ:
+ ctx->poll_fd.events |= POLLIN;
+ break;
+ case SSL_ERROR_WANT_WRITE:
+ ctx->poll_fd.events |= POLLOUT;
+ break;
+ default:
+ netdata_log_error("SSL_read Err: %s", _ssl_err_tos(ret));
+ return 3;
+ }
+ } else {
+ if (errno != EAGAIN && errno != EWOULDBLOCK) {
+ netdata_log_error("write error");
+ return 3;
+ }
+ ctx->poll_fd.events |= POLLIN;
}
- ctx->poll_fd.events |= POLLIN;
}
- }
+ } while (ctx->poll_fd.events == 0 && rbuf_bytes_free(ctx->buf_rx) > 0);
} while (!(ret = parse_http_response(ctx->buf_rx, &ctx->parse_ctx)));
if (ret != PARSE_SUCCESS) {
@@ -435,6 +576,8 @@ static int handle_http_request(https_req_ctx_t *ctx) {
// Read The Response
if (read_parse_response(ctx)) {
netdata_log_error("Error reading or parsing response from server");
+ if (ctx->parse_ctx.chunked_response)
+ freez(ctx->parse_ctx.chunked_response);
rc = 4;
goto err_exit;
}
@@ -546,6 +689,11 @@ int https_request(https_req_t *request, https_req_response_t *response) {
goto exit_CTX;
}
+ if (!SSL_set_tlsext_host_name(ctx->ssl, connect_host)) {
+ netdata_log_error("Error setting TLS SNI host");
+ goto exit_CTX;
+ }
+
SSL_set_fd(ctx->ssl, ctx->sock);
ret = SSL_connect(ctx->ssl);
if (ret != -1 && ret != 1) {
@@ -568,6 +716,10 @@ int https_request(https_req_t *request, https_req_response_t *response) {
goto exit_SSL;
}
response->http_code = ctx->parse_ctx.http_code;
+ if (ctx->parse_ctx.content_length == TRANSFER_ENCODING_CHUNKED) {
+ response->payload_size = ctx->parse_ctx.chunked_response_size;
+ response->payload = ctx->parse_ctx.chunked_response;
+ }
if (ctx->parse_ctx.content_length > 0) {
response->payload_size = ctx->parse_ctx.content_length;
response->payload = mallocz(response->payload_size + 1);
diff --git a/aclk/schema-wrappers/alarm_stream.cc b/aclk/schema-wrappers/alarm_stream.cc
index d1079a688..1538bc9e0 100644
--- a/aclk/schema-wrappers/alarm_stream.cc
+++ b/aclk/schema-wrappers/alarm_stream.cc
@@ -87,6 +87,7 @@ void destroy_alarm_log_entry(struct alarm_log_entry *entry)
freez(entry->rendered_info);
freez(entry->chart_context);
freez(entry->transition_id);
+ freez(entry->chart_name);
}
static void fill_alarm_log_entry(struct alarm_log_entry *data, AlarmLogEntry *proto)
@@ -129,15 +130,12 @@ static void fill_alarm_log_entry(struct alarm_log_entry *data, AlarmLogEntry *pr
proto->set_value(data->value);
proto->set_old_value(data->old_value);
-
proto->set_updated(data->updated);
-
proto->set_rendered_info(data->rendered_info);
-
proto->set_chart_context(data->chart_context);
-
proto->set_event_id(data->event_id);
proto->set_transition_id(data->transition_id);
+ proto->set_chart_name(data->chart_name);
}
char *generate_alarm_log_entry(size_t *len, struct alarm_log_entry *data)
diff --git a/aclk/schema-wrappers/alarm_stream.h b/aclk/schema-wrappers/alarm_stream.h
index e0bf31ce6..87893e0db 100644
--- a/aclk/schema-wrappers/alarm_stream.h
+++ b/aclk/schema-wrappers/alarm_stream.h
@@ -73,6 +73,7 @@ struct alarm_log_entry {
char *rendered_info;
char *chart_context;
+ char *chart_name;
uint64_t event_id;
char *transition_id;
diff --git a/build_external/scenarios/aclk-testing/agent_netdata.conf b/build_external/scenarios/aclk-testing/agent_netdata.conf
index b76f5fadb..6817a9453 100644
--- a/build_external/scenarios/aclk-testing/agent_netdata.conf
+++ b/build_external/scenarios/aclk-testing/agent_netdata.conf
@@ -7108,3 +7108,48 @@
# dim netdata algorithm = absolute
# dim netdata multiplier = 1
# dim netdata divisor = 1
+
+[system.power_consumption]
+ history = 5
+ # enabled = yes
+ # cache directory = /var/cache/netdata/system.power_consumption
+ # chart type = stacked
+ # type = system
+ # family = power_consumption
+ # units = Watts
+ # context = system.power_consumption
+ # priority = 950
+ # name = system.power_consumption
+ # title = Power Consumption
+ # dim HI name = HI
+ # dim HI algorithm = incremental
+ # dim HI multiplier = 1
+ # dim HI divisor = 1
+ # dim TIMER name = TIMER
+ # dim TIMER algorithm = incremental
+ # dim TIMER multiplier = 1
+ # dim TIMER divisor = 1
+ # dim NET_TX name = NET_TX
+ # dim NET_TX algorithm = incremental
+ # dim NET_TX multiplier = 1
+ # dim NET_TX divisor = 1
+ # dim NET_RX name = NET_RX
+ # dim NET_RX algorithm = incremental
+ # dim NET_RX multiplier = 1
+ # dim NET_RX divisor = 1
+ # dim TASKLET name = TASKLET
+ # dim TASKLET algorithm = incremental
+ # dim TASKLET multiplier = 1
+ # dim TASKLET divisor = 1
+ # dim SCHED name = SCHED
+ # dim SCHED algorithm = incremental
+ # dim SCHED multiplier = 1
+ # dim SCHED divisor = 1
+ # dim HRTIMER name = HRTIMER
+ # dim HRTIMER algorithm = incremental
+ # dim HRTIMER multiplier = 1
+ # dim HRTIMER divisor = 1
+ # dim RCU name = RCU
+ # dim RCU algorithm = incremental
+ # dim RCU multiplier = 1
+ # dim RCU divisor = 1
diff --git a/build_external/scenarios/gaps_lo/mostly_off.conf b/build_external/scenarios/gaps_lo/mostly_off.conf
index e66f928dd..dcfed367d 100644
--- a/build_external/scenarios/gaps_lo/mostly_off.conf
+++ b/build_external/scenarios/gaps_lo/mostly_off.conf
@@ -545,7 +545,7 @@ enabled = no
[cpu.cpu7_softirqs]
enabled = no
-[system.swapio]
+[mem.swapio]
enabled = no
[system.pgpgio]
@@ -560,7 +560,7 @@ enabled = no
[mem.available]
enabled = no
-[system.swap]
+[mem.swap]
enabled = no
[mem.committed]
@@ -961,3 +961,6 @@ enabled = no
[netfilter.netlink_expect]
enabled = no
+
+[system.power_consumption]
+enabled = no
diff --git a/claim/README.md b/claim/README.md
index fed37018c..5b15a6c19 100644
--- a/claim/README.md
+++ b/claim/README.md
@@ -69,7 +69,7 @@ When coming from the [Nodes tab](https://github.com/netdata/netdata/blob/master/
If you want to connect a node that is running on a Linux environment, the script that will be provided to you by Netdata Cloud is the [kickstart](https://github.com/netdata/netdata/blob/master/packaging/installer/README.md#automatic-one-line-installation-script) which will install the Netdata Agent on your node, if it isn't already installed, and connect the node to Netdata Cloud. It should be similar to:
```bash
-wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud
+wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud
```
The script should return `Agent was successfully claimed.`. If the connecting to Netdata Cloud process returns errors, or if you don't see
@@ -98,7 +98,7 @@ The default user is `netdata`. Yours may be different, so pay attention to the o
and run the script.
```bash
-wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud
+wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud
```
### Connect an agent running in Docker
@@ -209,7 +209,7 @@ docker run -d --name=netdata \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
-e NETDATA_CLAIM_TOKEN=TOKEN \
- -e NETDATA_CLAIM_URL="https://api.netdata.cloud" \
+ -e NETDATA_CLAIM_URL="https://app.netdata.cloud" \
-e NETDATA_CLAIM_ROOMS=ROOM1,ROOM2 \
-e NETDATA_CLAIM_PROXY=PROXY \
netdata/netdata
@@ -254,7 +254,7 @@ services:
- /etc/os-release:/host/etc/os-release:ro
environment:
- NETDATA_CLAIM_TOKEN=TOKEN
- - NETDATA_CLAIM_URL="https://api.netdata.cloud"
+ - NETDATA_CLAIM_URL="https://app.netdata.cloud"
- NETDATA_CLAIM_ROOMS=ROOM1,ROOM2
volumes:
@@ -275,7 +275,7 @@ Connect a _running Netdata Agent container_, where you don't want to recreate th
`netdata` with the name of your running container:
```bash
-docker exec -it netdata netdata-claim.sh -token=TOKEN -rooms=ROOM1,ROOM2 -url=https://api.netdata.cloud
+docker exec -it netdata netdata-claim.sh -token=TOKEN -rooms=ROOM1,ROOM2 -url=https://app.netdata.cloud
```
The values for `ROOM1,ROOM2` can be found by by going to Netdata Cloud, clicking the **Nodes** tab, clicking **Connect Nodes**, selecting **Docker**, and copying the `rooms=` value in the command provided.
@@ -288,7 +288,7 @@ you don't see the node in your Space after 60 seconds, see the [troubleshooting
To connect a node that is running on a macOS environment the script that will be provided to you by Netdata Cloud is the [kickstart](https://github.com/netdata/netdata/blob/master/packaging/installer/methods/macos.md#install-netdata-with-our-automatic-one-line-installation-script) which will install the Netdata Agent on your node, if it isn't already installed, and connect the node to Netdata Cloud. It should be similar to:
```bash
-curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud
+curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud
```
The script should return `Agent was successfully claimed.`. If the connecting to Netdata Cloud process returns errors, or if you don't see
@@ -329,7 +329,7 @@ You can now move on to connecting. When you connect with the [kickstart](https:/
append the same proxy setting you added to `netdata.conf`.
```bash
-wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud --claim-proxy http://[user:pass@]host:ip
+wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud --claim-proxy http://[user:pass@]host:ip
```
Hit **Enter**. The script should return `Agent was successfully claimed.`. If the connecting to Netdata Cloud process returns errors, or if
@@ -566,7 +566,7 @@ using the [ACLK](https://github.com/netdata/netdata/blob/master/aclk/README.md).
| setting | default | info |
|:-------------- |:------------------------- |:-------------------------------------------------------------------------------------------------------------------------------------- |
-| cloud base url | | The URL for the Netdata Cloud web application. You should not change this. If you want to disable Cloud, change the `enabled` setting. |
+| cloud base url | | The URL for the Netdata Cloud web application. You should not change this. If you want to disable Cloud, change the `enabled` setting. |
| enabled | yes | The runtime option to disable the [Agent-Cloud link](https://github.com/netdata/netdata/blob/master/aclk/README.md) and prevent your Agent from connecting to Netdata Cloud. |
### Claiming script
@@ -580,7 +580,7 @@ using `sudo`, or as the user running the Agent (typically `netdata`), and passin
-rooms=ROOM1,ROOM2,...
where ROOMX is the War Room this node should be added to. This list is optional.
-url=URL_BASE
- where URL_BASE is the Netdata Cloud endpoint base URL. By default, this is https://api.netdata.cloud.
+ where URL_BASE is the Netdata Cloud endpoint base URL. By default, this is https://app.netdata.cloud.
-id=AGENT_ID
where AGENT_ID is the unique identifier of the Agent. This is the Agent's MACHINE_GUID by default.
-hostname=HOSTNAME
diff --git a/claim/claim.c b/claim/claim.c
index a30fd0dab..d81440d2a 100644
--- a/claim/claim.c
+++ b/claim/claim.c
@@ -57,7 +57,8 @@ CLAIM_AGENT_RESPONSE claim_agent(const char *claiming_arguments, bool force, con
#ifndef DISABLE_CLOUD
int exit_code;
pid_t command_pid;
- char command_buffer[CLAIMING_COMMAND_LENGTH + 1];
+ char command_exec_buffer[CLAIMING_COMMAND_LENGTH + 1];
+ char command_line_buffer[CLAIMING_COMMAND_LENGTH + 1];
FILE *fp_child_output, *fp_child_input;
// This is guaranteed to be set early in main via post_conf_load()
@@ -76,42 +77,55 @@ CLAIM_AGENT_RESPONSE claim_agent(const char *claiming_arguments, bool force, con
if (proxy_type == PROXY_TYPE_SOCKS5 || proxy_type == PROXY_TYPE_HTTP)
snprintf(proxy_flag, CLAIMING_PROXY_LENGTH, "-proxy=\"%s\"", proxy_str);
- snprintfz(command_buffer,
+ snprintfz(command_exec_buffer, CLAIMING_COMMAND_LENGTH,
+ "exec \"%s%snetdata-claim.sh\"",
+ netdata_exe_path[0] ? netdata_exe_path : "",
+ netdata_exe_path[0] ? "/" : ""
+ );
+
+ snprintfz(command_line_buffer,
CLAIMING_COMMAND_LENGTH,
- "exec netdata-claim.sh %s -hostname=%s -id=%s -url=%s -noreload %s",
+ "%s %s -hostname=%s -id=%s -url=%s -noreload %s",
+ command_exec_buffer,
proxy_flag,
netdata_configured_hostname,
localhost->machine_guid,
cloud_base_url,
claiming_arguments);
- netdata_log_info("Executing agent claiming command 'netdata-claim.sh'");
- fp_child_output = netdata_popen(command_buffer, &command_pid, &fp_child_input);
+ netdata_log_info("Executing agent claiming command: %s", command_exec_buffer);
+ fp_child_output = netdata_popen(command_line_buffer, &command_pid, &fp_child_input);
if(!fp_child_output) {
- netdata_log_error("Cannot popen(\"%s\").", command_buffer);
+ netdata_log_error("Cannot popen(\"%s\").", command_exec_buffer);
return CLAIM_AGENT_CANNOT_EXECUTE_CLAIM_SCRIPT;
}
- netdata_log_info("Waiting for claiming command to finish.");
- while (fgets(command_buffer, CLAIMING_COMMAND_LENGTH, fp_child_output) != NULL) {;}
+
+ netdata_log_info("Waiting for claiming command '%s' to finish.", command_exec_buffer);
+ char read_buffer[100 + 1];
+ while (fgets(read_buffer, 100, fp_child_output) != NULL) {;}
+
exit_code = netdata_pclose(fp_child_input, fp_child_output, command_pid);
- netdata_log_info("Agent claiming command returned with code %d", exit_code);
+
+ netdata_log_info("Agent claiming command '%s' returned with code %d", command_exec_buffer, exit_code);
if (0 == exit_code) {
load_claiming_state();
return CLAIM_AGENT_OK;
}
if (exit_code < 0) {
- netdata_log_error("Agent claiming command failed to complete its run.");
+ netdata_log_error("Agent claiming command '%s' failed to complete its run", command_exec_buffer);
return CLAIM_AGENT_CLAIM_SCRIPT_FAILED;
}
errno = 0;
unsigned maximum_known_exit_code = sizeof(claiming_errors) / sizeof(claiming_errors[0]) - 1;
if ((unsigned)exit_code > maximum_known_exit_code) {
- netdata_log_error("Agent failed to be claimed with an unknown error.");
+ netdata_log_error("Agent failed to be claimed with an unknown error. Cmd: '%s'", command_exec_buffer);
return CLAIM_AGENT_CLAIM_SCRIPT_RETURNED_INVALID_CODE;
}
- netdata_log_error("Agent failed to be claimed with the following error message:");
+ netdata_log_error("Agent failed to be claimed using the command '%s' with the following error message:",
+ command_exec_buffer);
+
netdata_log_error("\"%s\"", claiming_errors[exit_code]);
if(msg) *msg = claiming_errors[exit_code];
@@ -342,7 +356,7 @@ int api_v2_claim(struct web_client *w, char *url) {
BUFFER *wb = w->response.data;
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
time_t now_s = now_realtime_sec();
CLOUD_STATUS status = buffer_json_cloud_status(wb, now_s);
@@ -409,12 +423,12 @@ int api_v2_claim(struct web_client *w, char *url) {
int ms = 0;
do {
status = cloud_status();
- if (status == CLOUD_STATUS_ONLINE)
+ if (status == CLOUD_STATUS_ONLINE && __atomic_load_n(&localhost->node_id, __ATOMIC_RELAXED))
break;
- sleep_usec(100 * USEC_PER_MS);
- ms += 100;
- } while (ms < 5000);
+ sleep_usec(50 * USEC_PER_MS);
+ ms += 50;
+ } while (ms < 10000);
}
break;
@@ -448,7 +462,7 @@ int api_v2_claim(struct web_client *w, char *url) {
// our status may have changed
// refresh the status in our output
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
now_s = now_realtime_sec();
buffer_json_cloud_status(wb, now_s);
diff --git a/claim/netdata-claim.sh.in b/claim/netdata-claim.sh.in
index 43040e316..cc6c10932 100755
--- a/claim/netdata-claim.sh.in
+++ b/claim/netdata-claim.sh.in
@@ -136,7 +136,7 @@ MACHINE_GUID_FILE="@registrydir_POST@/netdata.public.unique.id"
CLAIMING_DIR="${NETDATA_VARLIB_DIR}/cloud.d"
TOKEN="unknown"
URL_BASE=$(get_config_value cloud global "cloud base url")
-[ -z "$URL_BASE" ] && URL_BASE="https://api.netdata.cloud" # Cover post-install with --dont-start
+[ -z "$URL_BASE" ] && URL_BASE="https://app.netdata.cloud" # Cover post-install with --dont-start
ID="unknown"
ROOMS=""
[ -z "$HOSTNAME" ] && HOSTNAME=$(hostname)
diff --git a/collectors/COLLECTORS.md b/collectors/COLLECTORS.md
index dbf2a9a1a..aa56ac702 100644
--- a/collectors/COLLECTORS.md
+++ b/collectors/COLLECTORS.md
@@ -451,7 +451,7 @@ The Netdata Agent can collect these system- and hardware-level metrics using a v
- [MegaRAID controllers](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/megacli/README.md):
Collect adapter, physical drives, and
battery stats using the `megacli` tool.
-- [NVIDIA GPU](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/nvidia_smi/README.md): Monitor
+- [NVIDIA GPU](https://github.com/netdata/go.d.plugin/blob/master/modules/nvidia_smi/README.md): Monitor
performance metrics (memory usage, fan
speed, pcie bandwidth utilization, temperature, and more) using the `nvidia-smi` tool.
- [Sensors](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/sensors/README.md): Reads system
@@ -669,6 +669,7 @@ $ sudo systemctl restart netdata
- [netdata-debsecan](https://github.com/nodiscc/netdata-debsecan) - Check/graph the number of CVEs in currently installed packages.
- [netdata-logcount](https://github.com/nodiscc/netdata-logcount) - Check/graph the number of syslog messages, by level over time.
- [netdata-apt](https://github.com/nodiscc/netdata-apt) - Check/graph and alert on the number of upgradeable packages, and available distribution upgrades.
+- [diskquota](https://github.com/netdata/community/tree/main/collectors/python.d.plugin/diskquota) - Monitors the defined quotas on one or more filesystems depending on configuration.
## Etc
diff --git a/collectors/Makefile.am b/collectors/Makefile.am
index 2aec3dd3e..d477e5b80 100644
--- a/collectors/Makefile.am
+++ b/collectors/Makefile.am
@@ -25,6 +25,7 @@ SUBDIRS = \
statsd.plugin \
ebpf.plugin \
tc.plugin \
+ systemd-journal.plugin \
$(NULL)
usercustompluginsconfigdir=$(configdir)/custom-plugins.d
diff --git a/collectors/all.h b/collectors/all.h
index 0ce40c755..22b75aaaa 100644
--- a/collectors/all.h
+++ b/collectors/all.h
@@ -23,18 +23,6 @@
#define NETDATA_CHART_PRIO_SYSTEM_IO 150
#define NETDATA_CHART_PRIO_SYSTEM_PGPGIO 151
#define NETDATA_CHART_PRIO_SYSTEM_RAM 200
-#define NETDATA_CHART_PRIO_SYSTEM_SWAP 201
-#define NETDATA_CHART_PRIO_SYSTEM_SWAP_CALLS 202
-#define NETDATA_CHART_PRIO_SYSTEM_SWAPIO 250
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAPIO 300
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_COMPRESS_RATIO 301
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_POOL_TOT_SIZE 302
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_STORED_PAGE 303
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS 304
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_POOL_LIM_HIT 305
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_WRT_BACK_PAGES 306
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_SAME_FILL_PAGE 307
-#define NETDATA_CHART_PRIO_SYSTEM_ZSWAP_DUPP_ENTRY 308
#define NETDATA_CHART_PRIO_SYSTEM_NET 500
#define NETDATA_CHART_PRIO_SYSTEM_IPV4 500 // freebsd only
#define NETDATA_CHART_PRIO_SYSTEM_IP 501
@@ -87,17 +75,35 @@
#define NETDATA_CHART_PRIO_MEM_SYSTEM_AVAILABLE 1010
#define NETDATA_CHART_PRIO_MEM_SYSTEM_OOM_KILL 1020
#define NETDATA_CHART_PRIO_MEM_SYSTEM_COMMITTED 1030
-#define NETDATA_CHART_PRIO_MEM_SYSTEM_PGFAULTS 1040
+#define NETDATA_CHART_PRIO_MEM_SWAP 1035
+#define NETDATA_CHART_PRIO_MEM_SWAP_CALLS 1037
+#define NETDATA_CHART_PRIO_MEM_SWAPIO 1038
+#define NETDATA_CHART_PRIO_MEM_ZSWAP 1036
+#define NETDATA_CHART_PRIO_MEM_ZSWAPIO 1037
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_COMPRESS_RATIO 1038
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_POOL_TOT_SIZE 1039
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_STORED_PAGE 1040
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS 1041
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_POOL_LIM_HIT 1042
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_WRT_BACK_PAGES 1043
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_SAME_FILL_PAGE 1044
+#define NETDATA_CHART_PRIO_MEM_ZSWAP_DUPP_ENTRY 1045
+#define NETDATA_CHART_PRIO_MEM_SYSTEM_PGFAULTS 1050
#define NETDATA_CHART_PRIO_MEM_KERNEL 1100
#define NETDATA_CHART_PRIO_MEM_SLAB 1200
+#define NETDATA_CHART_PRIO_MEM_RECLAIMING 1210
+#define NETDATA_CHART_PRIO_MEM_HIGH_LOW 1211
+#define NETDATA_CHART_PRIO_MEM_CMA 1212
#define NETDATA_CHART_PRIO_MEM_HUGEPAGES 1250
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_FAULTS 1251
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_FILE 1252
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_ZERO 1253
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_KHUGEPAGED 1254
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_SPLITS 1255
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_SWAPOUT 1256
-#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_COMPACT 1257
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_DETAILS 1251
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_FAULTS 1252
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_FILE 1253
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_ZERO 1254
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_KHUGEPAGED 1255
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_SPLITS 1256
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_SWAPOUT 1257
+#define NETDATA_CHART_PRIO_MEM_HUGEPAGES_COMPACT 1258
+#define NETDATA_CHART_PRIO_MEM_DIRECTMAP 1260
#define NETDATA_CHART_PRIO_MEM_KSM 1300
#define NETDATA_CHART_PRIO_MEM_KSM_SAVINGS 1301
#define NETDATA_CHART_PRIO_MEM_KSM_RATIOS 1302
@@ -367,10 +373,13 @@
#define NETDATA_CHART_PRIO_POWER_SUPPLY_ENERGY 9502
#define NETDATA_CHART_PRIO_POWER_SUPPLY_VOLTAGE 9503
+// Linux powercap
+
+#define NETDATA_CHART_PRIO_POWERCAP 9600
// Wireless
-#define NETDATA_CHART_PRIO_WIRELESS_IFACE 7110
+#define NETDATA_CHART_PRIO_WIRELESS_IFACE 7110
// CGROUPS
@@ -381,19 +390,20 @@
#define NETDATA_CHART_PRIO_STATSD_PRIVATE 90000 // many charts
-// INTERNAL NETDATA INFO
+// PCI
+
+#define NETDATA_CHART_PRIO_PCI_AER 100000
-#define NETDATA_CHART_PRIO_CHECKS 99999
+// AMD GPUs
-#define NETDATA_CHART_PRIO_NETDATA_TIMEX 132030
-#define NETDATA_CHART_PRIO_NETDATA_TC_TIME 1000100
+#define NETDATA_CHART_PRIO_DRM_AMDGPU 39000
// NETDATA ML CHARTS
// [ml] charts
-#define ML_CHART_PRIO_DIMENSIONS 39181
-#define ML_CHART_PRIO_ANOMALY_RATE 39182
-#define ML_CHART_PRIO_DETECTOR_EVENTS 39183
+#define ML_CHART_PRIO_DIMENSIONS 39181
+#define ML_CHART_PRIO_ANOMALY_RATE 39182
+#define ML_CHART_PRIO_DETECTOR_EVENTS 39183
// [netdata.ml] charts
#define NETDATA_ML_CHART_RUNNING 890001
diff --git a/collectors/apps.plugin/README.md b/collectors/apps.plugin/README.md
index ad4e0882f..fd5371f08 100644
--- a/collectors/apps.plugin/README.md
+++ b/collectors/apps.plugin/README.md
@@ -30,7 +30,7 @@ a predefined set of members (of course, only process groups found running are re
Unlike traditional process monitoring tools (like `top`), `apps.plugin` is able to account the resource
utilization of exit processes. Their utilization is accounted at their currently running parents.
So, `apps.plugin` is perfectly able to measure the resources used by shell scripts and other processes
-that fork/spawn other short lived processes hundreds of times per second.
+that fork/spawn other short-lived processes hundreds of times per second.
## Charts
@@ -75,7 +75,7 @@ The above are reported:
- For **Applications** per target configured.
- For **Users** per username or UID (when the username is not available).
-- For **User Groups** per groupname or GID (when groupname is not available).
+- For **User Groups** per group name or GID (when group name is not available).
## Performance
@@ -183,8 +183,7 @@ If this fails (i.e. `setcap` fails), `apps.plugin` is setuid to `root`.
There are a few cases, like `docker` and `virtuozzo` containers, where `setcap` succeeds, but the capabilities
are silently ignored (in `lxc` containers `setcap` fails).
-In these cases ()`setcap` succeeds but capabilities do not work), you will have to setuid
-to root `apps.plugin` by running these commands:
+In this case, you will have to setuid to root `apps.plugin` by running these commands:
```sh
chown root:netdata /usr/libexec/netdata/plugins.d/apps.plugin
@@ -200,7 +199,7 @@ iterating forever, collecting metrics for each running process and sending them
This is a one-way communication, from `apps.plugin` to Netdata.
So, since `apps.plugin` cannot be instructed by Netdata for the actions it performs,
-we think it is pretty safe to allow it have these increased privileges.
+we think it is pretty safe to allow it to have these increased privileges.
Keep in mind that `apps.plugin` will still run without escalated permissions,
but it will not be able to collect all the information.
@@ -219,7 +218,7 @@ Here is an example for the process group `sql` at `https://registry.my-netdata.i
![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.processes&dimensions=sql&value_color=green%3E0%7Cred)
-Netdata is able give you a lot more badges for your app.
+Netdata is able to give you a lot more badges for your app.
Examples below for process group `sql`:
- CPU usage: ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.cpu&dimensions=sql&value_color=green=0%7Corange%3C50%7Cred)
@@ -227,7 +226,7 @@ Examples below for process group `sql`:
- Disk Physical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
- Disk Logical Reads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lreads&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
- Disk Logical Writes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.lwrites&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
-- Open Files ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.files&dimensions=sql&value_color=green%3E30%7Cred)
+- Open Files ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.fds_files&dimensions=sql&value_color=green%3E30%7Cred)
- Real Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.mem&dimensions=sql&value_color=green%3C100%7Corange%3C200%7Cred)
- Virtual Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.vmem&dimensions=sql&value_color=green%3C100%7Corange%3C1000%7Cred)
- Swap Memory ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.swap&dimensions=sql&value_color=green=0%7Cred)
@@ -235,8 +234,8 @@ Examples below for process group `sql`:
- Processes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.processes&dimensions=sql&value_color=green%3E0%7Cred)
- Threads ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.threads&dimensions=sql&value_color=green%3E=28%7Cred)
- Major Faults (swap activity) ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.major_faults&dimensions=sql&value_color=green=0%7Cred)
-- Open Pipes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.pipes&dimensions=sql&value_color=green=0%7Cred)
-- Open Sockets ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.sockets&dimensions=sql&value_color=green%3E=3%7Cred)
+- Open Pipes ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.fds_pipes&dimensions=sql&value_color=green=0%7Cred)
+- Open Sockets ![image](https://registry.my-netdata.io/api/v1/badge.svg?chart=apps.fds_sockets&dimensions=sql&value_color=green%3E=3%7Cred)
For more information about badges check [Generating Badges](https://github.com/netdata/netdata/blob/master/web/api/badges/README.md)
diff --git a/collectors/apps.plugin/apps_plugin.c b/collectors/apps.plugin/apps_plugin.c
index 105c54262..94f997e86 100644
--- a/collectors/apps.plugin/apps_plugin.c
+++ b/collectors/apps.plugin/apps_plugin.c
@@ -13,7 +13,7 @@
#define APPS_PLUGIN_PROCESSES_FUNCTION_DESCRIPTION "Detailed information on the currently running processes."
#define APPS_PLUGIN_FUNCTIONS() do { \
- fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " \"processes\" 10 \"%s\"\n", APPS_PLUGIN_PROCESSES_FUNCTION_DESCRIPTION); \
+ fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " \"processes\" %d \"%s\"\n", PLUGINS_FUNCTIONS_TIMEOUT_DEFAULT, APPS_PLUGIN_PROCESSES_FUNCTION_DESCRIPTION); \
} while(0)
@@ -144,12 +144,13 @@ static const char *proc_states[] = {
// log each problem once per process
// log flood protection flags (log_thrown)
typedef enum __attribute__((packed)) {
- PID_LOG_IO = (1 << 0),
- PID_LOG_STATUS = (1 << 1),
- PID_LOG_CMDLINE = (1 << 2),
- PID_LOG_FDS = (1 << 3),
- PID_LOG_STAT = (1 << 4),
- PID_LOG_LIMITS = (1 << 5),
+ PID_LOG_IO = (1 << 0),
+ PID_LOG_STATUS = (1 << 1),
+ PID_LOG_CMDLINE = (1 << 2),
+ PID_LOG_FDS = (1 << 3),
+ PID_LOG_STAT = (1 << 4),
+ PID_LOG_LIMITS = (1 << 5),
+ PID_LOG_LIMITS_DETAIL = (1 << 6),
} PID_LOG;
static int
@@ -1362,6 +1363,9 @@ static inline kernel_uint_t get_proc_pid_limits_limit(char *buf, const char *key
char *v = &line[key_len];
while(isspace(*v)) v++;
+ if(strcmp(v, "unlimited") == 0)
+ return 0;
+
return str2ull(v, NULL);
}
@@ -1373,11 +1377,17 @@ static inline int read_proc_pid_limits(struct pid_stat *p, void *ptr) {
#else
static char proc_pid_limits_buffer[MAX_PROC_PID_LIMITS + 1];
int ret = 0;
+ bool read_limits = false;
+
+ errno = 0;
+ proc_pid_limits_buffer[0] = '\0';
kernel_uint_t all_fds = pid_openfds_sum(p);
- if(all_fds < p->limits.max_open_files / 2 && p->io_collected_usec > p->last_limits_collected_usec && p->io_collected_usec - p->last_limits_collected_usec <= 60 * USEC_PER_SEC)
+ if(all_fds < p->limits.max_open_files / 2 && p->io_collected_usec > p->last_limits_collected_usec && p->io_collected_usec - p->last_limits_collected_usec <= 60 * USEC_PER_SEC) {
// too frequent, we want to collect limits once per minute
+ ret = 1;
goto cleanup;
+ }
if(unlikely(!p->limits_filename)) {
char filename[FILENAME_MAX + 1];
@@ -1394,8 +1404,25 @@ static inline int read_proc_pid_limits(struct pid_stat *p, void *ptr) {
if(bytes <= 0)
goto cleanup;
+ // make it '\0' terminated
+ if(bytes < MAX_PROC_PID_LIMITS)
+ proc_pid_limits_buffer[bytes] = '\0';
+ else
+ proc_pid_limits_buffer[MAX_PROC_PID_LIMITS - 1] = '\0';
+
p->limits.max_open_files = get_proc_pid_limits_limit(proc_pid_limits_buffer, PROC_PID_LIMITS_MAX_OPEN_FILES_KEY, sizeof(PROC_PID_LIMITS_MAX_OPEN_FILES_KEY) - 1, 0);
+ if(p->limits.max_open_files == 1) {
+ // it seems a bug in the kernel or something similar
+ // it sets max open files to 1 but the number of files
+ // the process has open are more than 1...
+ // https://github.com/netdata/netdata/issues/15443
+ p->limits.max_open_files = 0;
+ ret = 1;
+ goto cleanup;
+ }
+
p->last_limits_collected_usec = p->io_collected_usec;
+ read_limits = true;
ret = 1;
@@ -1405,6 +1432,62 @@ cleanup:
else
p->openfds_limits_percent = 0.0;
+ if(p->openfds_limits_percent > 100.0) {
+ if(!(p->log_thrown & PID_LOG_LIMITS_DETAIL)) {
+ char *line;
+
+ if(!read_limits) {
+ proc_pid_limits_buffer[0] = '\0';
+ line = "NOT READ";
+ }
+ else {
+ line = strstr(proc_pid_limits_buffer, PROC_PID_LIMITS_MAX_OPEN_FILES_KEY);
+ if (line) {
+ line++; // skip the initial newline
+
+ char *end = strchr(line, '\n');
+ if (end)
+ *end = '\0';
+ }
+ }
+
+ netdata_log_info(
+ "FDS_LIMITS: PID %d (%s) is using "
+ "%0.2f %% of its fds limits, "
+ "open fds = %llu ("
+ "files = %llu, "
+ "pipes = %llu, "
+ "sockets = %llu, "
+ "inotifies = %llu, "
+ "eventfds = %llu, "
+ "timerfds = %llu, "
+ "signalfds = %llu, "
+ "eventpolls = %llu "
+ "other = %llu "
+ "), open fds limit = %llu, "
+ "%s, "
+ "original line [%s]",
+ p->pid, p->comm, p->openfds_limits_percent, all_fds,
+ p->openfds.files,
+ p->openfds.pipes,
+ p->openfds.sockets,
+ p->openfds.inotifies,
+ p->openfds.eventfds,
+ p->openfds.timerfds,
+ p->openfds.signalfds,
+ p->openfds.eventpolls,
+ p->openfds.other,
+ p->limits.max_open_files,
+ read_limits ? "and we have read the limits AFTER counting the fds"
+ : "but we have read the limits BEFORE counting the fds",
+ line);
+
+ p->log_thrown |= PID_LOG_LIMITS_DETAIL;
+ }
+ }
+ else
+ p->log_thrown &= ~PID_LOG_LIMITS_DETAIL;
+
return ret;
#endif
}
@@ -4489,7 +4572,7 @@ static int check_capabilities() {
}
#endif
-netdata_mutex_t mutex = NETDATA_MUTEX_INITIALIZER;
+static netdata_mutex_t mutex = NETDATA_MUTEX_INITIALIZER;
#define PROCESS_FILTER_CATEGORY "category:"
#define PROCESS_FILTER_USER "user:"
@@ -4542,15 +4625,6 @@ static void get_MemTotal(void) {
#endif
}
-static void apps_plugin_function_error(const char *transaction, int code, const char *msg) {
- char buffer[PLUGINSD_LINE_MAX + 1];
- json_escape_string(buffer, msg, PLUGINSD_LINE_MAX);
-
- pluginsd_function_result_begin_to_stdout(transaction, code, "application/json", now_realtime_sec());
- fprintf(stdout, "{\"status\":%d,\"error_message\":\"%s\"}", code, buffer);
- pluginsd_function_result_end_to_stdout();
-}
-
static void apps_plugin_function_processes_help(const char *transaction) {
pluginsd_function_result_begin_to_stdout(transaction, HTTP_RESP_OK, "text/plain", now_realtime_sec() + 3600);
fprintf(stdout, "%s",
@@ -4598,7 +4672,7 @@ static void apps_plugin_function_processes_help(const char *transaction) {
buffer_json_add_array_item_double(wb, _tmp); \
} while(0)
-static void apps_plugin_function_processes(const char *transaction, char *function __maybe_unused, char *line_buffer __maybe_unused, int line_max __maybe_unused, int timeout __maybe_unused) {
+static void function_processes(const char *transaction, char *function __maybe_unused, char *line_buffer __maybe_unused, int line_max __maybe_unused, int timeout __maybe_unused) {
struct pid_stat *p;
char *words[PLUGINSD_MAX_WORDS] = { NULL };
@@ -4619,21 +4693,21 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
if(!category && strncmp(keyword, PROCESS_FILTER_CATEGORY, strlen(PROCESS_FILTER_CATEGORY)) == 0) {
category = find_target_by_name(apps_groups_root_target, &keyword[strlen(PROCESS_FILTER_CATEGORY)]);
if(!category) {
- apps_plugin_function_error(transaction, HTTP_RESP_BAD_REQUEST, "No category with that name found.");
+ pluginsd_function_json_error(transaction, HTTP_RESP_BAD_REQUEST, "No category with that name found.");
return;
}
}
else if(!user && strncmp(keyword, PROCESS_FILTER_USER, strlen(PROCESS_FILTER_USER)) == 0) {
user = find_target_by_name(users_root_target, &keyword[strlen(PROCESS_FILTER_USER)]);
if(!user) {
- apps_plugin_function_error(transaction, HTTP_RESP_BAD_REQUEST, "No user with that name found.");
+ pluginsd_function_json_error(transaction, HTTP_RESP_BAD_REQUEST, "No user with that name found.");
return;
}
}
else if(strncmp(keyword, PROCESS_FILTER_GROUP, strlen(PROCESS_FILTER_GROUP)) == 0) {
group = find_target_by_name(groups_root_target, &keyword[strlen(PROCESS_FILTER_GROUP)]);
if(!group) {
- apps_plugin_function_error(transaction, HTTP_RESP_BAD_REQUEST, "No group with that name found.");
+ pluginsd_function_json_error(transaction, HTTP_RESP_BAD_REQUEST, "No group with that name found.");
return;
}
}
@@ -4659,7 +4733,7 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
else {
char msg[PLUGINSD_LINE_MAX];
snprintfz(msg, PLUGINSD_LINE_MAX, "Invalid parameter '%s'", keyword);
- apps_plugin_function_error(transaction, HTTP_RESP_BAD_REQUEST, msg);
+ pluginsd_function_json_error(transaction, HTTP_RESP_BAD_REQUEST, msg);
return;
}
}
@@ -4672,7 +4746,7 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
unsigned int io_divisor = 1024 * RATES_DETAIL;
BUFFER *wb = buffer_create(PLUGINSD_LINE_MAX, NULL);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS);
buffer_json_member_add_uint64(wb, "status", HTTP_RESP_OK);
buffer_json_member_add_string(wb, "type", "table");
buffer_json_member_add_time_t(wb, "update_every", update_every);
@@ -5149,7 +5223,7 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "Uptime", "Uptime in seconds", RRDF_FIELD_TYPE_DURATION,
- RRDF_FIELD_VISUAL_BAR, RRDF_FIELD_TRANSFORM_DURATION, 2,
+ RRDF_FIELD_VISUAL_BAR, RRDF_FIELD_TRANSFORM_DURATION_S, 2,
"seconds", Uptime_max, RRDF_FIELD_SORT_DESCENDING, NULL, RRDF_FIELD_SUMMARY_MAX,
RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
@@ -5449,9 +5523,9 @@ static void apps_plugin_function_processes(const char *transaction, char *functi
pluginsd_function_result_end_to_stdout();
}
-bool apps_plugin_exit = false;
+static bool apps_plugin_exit = false;
-void *reader_main(void *arg __maybe_unused) {
+static void *reader_main(void *arg __maybe_unused) {
char buffer[PLUGINSD_LINE_MAX + 1];
char *s = NULL;
@@ -5483,9 +5557,9 @@ void *reader_main(void *arg __maybe_unused) {
netdata_mutex_lock(&mutex);
if(strncmp(function, "processes", strlen("processes")) == 0)
- apps_plugin_function_processes(transaction, function, buffer, PLUGINSD_LINE_MAX + 1, timeout);
+ function_processes(transaction, function, buffer, PLUGINSD_LINE_MAX + 1, timeout);
else
- apps_plugin_function_error(transaction, HTTP_RESP_NOT_FOUND, "No function with this name found in apps.plugin.");
+ pluginsd_function_json_error(transaction, HTTP_RESP_NOT_FOUND, "No function with this name found in apps.plugin.");
fflush(stdout);
netdata_mutex_unlock(&mutex);
@@ -5613,6 +5687,8 @@ int main(int argc, char **argv) {
netdata_thread_create(&reader_thread, "APPS_READER", NETDATA_THREAD_OPTION_DONT_LOG, reader_main, NULL);
netdata_mutex_lock(&mutex);
+ APPS_PLUGIN_FUNCTIONS();
+
usec_t step = update_every * USEC_PER_SEC;
global_iterations_counter = 1;
heartbeat_t hb;
diff --git a/collectors/apps.plugin/metadata.yaml b/collectors/apps.plugin/metadata.yaml
new file mode 100644
index 000000000..9794a5ea2
--- /dev/null
+++ b/collectors/apps.plugin/metadata.yaml
@@ -0,0 +1,665 @@
+plugin_name: apps.plugin
+modules:
+ # removed system.processes_state
+ - meta:
+ plugin_name: apps.plugin
+ module_name: apps
+ monitored_instance:
+ name: Applications
+ link: ""
+ categories:
+ - data-collection.processes-and-system-services
+ icon_filename: "applications.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - applications
+ - processes
+ - os
+ - host monitoring
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Applications for optimal software performance and resource usage."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: apps.cpu
+ description: Apps CPU Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cpu_user
+ description: Apps CPU User Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cpu_system
+ description: Apps CPU System Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cpu_guest
+ description: Apps CPU Guest Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.mem
+ description: Apps Real Memory (w/o shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.rss
+ description: Apps Resident Set Size (w/shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vmem
+ description: Apps Virtual Memory Size
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.swap
+ description: Apps Swap Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.major_faults
+ description: Apps Major Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.minor_faults
+ description: Apps Minor Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.preads
+ description: Apps Disk Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.pwrites
+ description: Apps Disk Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.lreads
+ description: Apps Disk Logical Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.lwrites
+ description: Apps I/O Logical Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.threads
+ description: Apps Threads
+ unit: "threads"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.processes
+ description: Apps Processes
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.voluntary_ctxt_switches
+ description: Apps Voluntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.involuntary_ctxt_switches
+ description: Apps Involuntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.uptime
+ description: Apps Carried Over Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.uptime_min
+ description: Apps Minimum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.uptime_avg
+ description: Apps Average Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.uptime_max
+ description: Apps Maximum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.files
+ description: Apps Open Files
+ unit: "open files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.sockets
+ description: Apps Open Sockets
+ unit: "open sockets"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.pipes
+ description: Apps Open Pipes
+ unit: "open pipes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - meta:
+ plugin_name: apps.plugin
+ module_name: groups
+ monitored_instance:
+ name: User Groups
+ link: ""
+ categories:
+ - data-collection.processes-and-system-services
+ icon_filename: "user.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - groups
+ - processes
+ - user auditing
+ - authorization
+ - os
+ - host monitoring
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors resource utilization on a user groups context."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: groups.cpu
+ description: User Groups CPU Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.cpu_user
+ description: User Groups CPU User Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.cpu_system
+ description: User Groups CPU System Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.cpu_guest
+ description: User Groups CPU Guest Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.mem
+ description: User Groups Real Memory (w/o shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.rss
+ description: User Groups Resident Set Size (w/shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.vmem
+ description: User Groups Virtual Memory Size
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.swap
+ description: User Groups Swap Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.major_faults
+ description: User Groups Major Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.minor_faults
+ description: User Groups Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.preads
+ description: User Groups Disk Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.pwrites
+ description: User Groups Disk Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.lreads
+ description: User Groups Disk Logical Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.lwrites
+ description: User Groups I/O Logical Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.threads
+ description: User Groups Threads
+ unit: "threads"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.processes
+ description: User Groups Processes
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.voluntary_ctxt_switches
+ description: User Groups Voluntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: groups.involuntary_ctxt_switches
+ description: User Groups Involuntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: groups.uptime
+ description: User Groups Carried Over Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.uptime_min
+ description: User Groups Minimum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.uptime_avg
+ description: User Groups Average Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.uptime_max
+ description: User Groups Maximum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.files
+ description: User Groups Open Files
+ unit: "open files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.sockets
+ description: User Groups Open Sockets
+ unit: "open sockets"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - name: groups.pipes
+ description: User Groups Open Pipes
+ unit: "open pipes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user group
+ - meta:
+ plugin_name: apps.plugin
+ module_name: users
+ monitored_instance:
+ name: Users
+ link: ""
+ categories:
+ - data-collection.processes-and-system-services
+ icon_filename: "users.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - users
+ - processes
+ - os
+ - host monitoring
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors resource utilization on a user context."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: users.cpu
+ description: Users CPU Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.cpu_user
+ description: Users CPU User Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.cpu_system
+ description: Users CPU System Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.cpu_guest
+ description: Users CPU Guest Time (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.mem
+ description: Users Real Memory (w/o shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.rss
+ description: Users Resident Set Size (w/shared)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.vmem
+ description: Users Virtual Memory Size
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.swap
+ description: Users Swap Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.major_faults
+ description: Users Major Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.minor_faults
+ description: Users Page Faults (swap read)
+ unit: "page faults/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.preads
+ description: Users Disk Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.pwrites
+ description: Users Disk Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.lreads
+ description: Users Disk Logical Reads
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.lwrites
+ description: Users I/O Logical Writes
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.threads
+ description: Users Threads
+ unit: "threads"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.processes
+ description: Users Processes
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.voluntary_ctxt_switches
+ description: Users Voluntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: users.involuntary_ctxt_switches
+ description: Users Involuntary Context Switches
+ unit: "processes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: users.uptime
+ description: Users Carried Over Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user
+ - name: users.uptime_min
+ description: Users Minimum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user
+ - name: users.uptime_avg
+ description: Users Average Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user
+ - name: users.uptime_max
+ description: Users Maximum Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per user
+ - name: users.files
+ description: Users Open Files
+ unit: "open files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.sockets
+ description: Users Open Sockets
+ unit: "open sockets"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
+ - name: users.pipes
+ description: Users Open Pipes
+ unit: "open pipes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per user
diff --git a/collectors/apps.plugin/metrics.csv b/collectors/apps.plugin/metrics.csv
deleted file mode 100644
index afda7a860..000000000
--- a/collectors/apps.plugin/metrics.csv
+++ /dev/null
@@ -1,81 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.processes_state,,"running, sleeping_interruptible, sleeping_uninterruptible, zombie, stopped",processes,"System Processes State",line,,apps.plugin,system
-apps.cpu,,a dimension per app group,percentage,"Apps CPU Time (100% = 1 core)",stacked,,apps.plugin,apps
-apps.cpu_user,,a dimension per app group,percentage,"Apps CPU User Time (100% = 1 core)",stacked,,apps.plugin,apps
-apps.cpu_system,,a dimension per app group,percentage,"Apps CPU System Time (100% = 1 core)",stacked,,apps.plugin,apps
-apps.cpu_guest,,a dimension per app group,percentage,"Apps CPU Guest Time (100% = 1 core)",stacked,,apps.plugin,apps
-apps.mem,,a dimension per app group,MiB,"Apps Real Memory (w/o shared)",stacked,,apps.plugin,apps
-apps.rss,,a dimension per app group,MiB,"Apps Resident Set Size (w/shared)",stacked,,apps.plugin,apps
-apps.vmem,,a dimension per app group,MiB,"Apps Virtual Memory Size",stacked,,apps.plugin,apps
-apps.swap,,a dimension per app group,MiB,"Apps Swap Memory",stacked,,apps.plugin,apps
-apps.major_faults,,a dimension per app group,"page faults/s","Apps Major Page Faults (swap read)",stacked,,apps.plugin,apps
-apps.minor_faults,,a dimension per app group,"page faults/s","Apps Minor Page Faults (swap read)",stacked,,apps.plugin,apps
-apps.preads,,a dimension per app group,"KiB/s","Apps Disk Reads",stacked,,apps.plugin,apps
-apps.pwrites,,a dimension per app group,"KiB/s","Apps Disk Writes",stacked,,apps.plugin,apps
-apps.lreads,,a dimension per app group,"KiB/s","Apps Disk Logical Reads",stacked,,apps.plugin,apps
-apps.lwrites,,a dimension per app group,"KiB/s","Apps I/O Logical Writes",stacked,,apps.plugin,apps
-apps.threads,,a dimension per app group,threads,"Apps Threads",stacked,,apps.plugin,apps
-apps.processes,,a dimension per app group,processes,"Apps Processes",stacked,,apps.plugin,apps
-apps.voluntary_ctxt_switches,,a dimension per app group,processes,"Apps Voluntary Context Switches",stacked,,apps.plugin,apps
-apps.involuntary_ctxt_switches,,a dimension per app group,processes,"Apps Involuntary Context Switches",stacked,,apps.plugin,apps
-apps.uptime,,a dimension per app group,seconds,"Apps Carried Over Uptime",line,,apps.plugin,apps
-apps.uptime_min,,a dimension per app group,seconds,"Apps Minimum Uptime",line,,apps.plugin,apps
-apps.uptime_avg,,a dimension per app group,seconds,"Apps Average Uptime",line,,apps.plugin,apps
-apps.uptime_max,,a dimension per app group,seconds,"Apps Maximum Uptime",line,,apps.plugin,apps
-apps.files,,a dimension per app group,"open files","Apps Open Files",stacked,,apps.plugin,apps
-apps.sockets,,a dimension per app group,"open sockets","Apps Open Sockets",stacked,,apps.plugin,apps
-apps.pipes,,a dimension per app group,"open pipes","Apps Open Pipes",stacked,,apps.plugin,apps
-groups.cpu,,a dimension per user group,percentage,"User Groups CPU Time (100% = 1 core)",stacked,,apps.plugin,groups
-groups.cpu_user,,a dimension per user group,percentage,"User Groups CPU User Time (100% = 1 core)",stacked,,apps.plugin,groups
-groups.cpu_system,,a dimension per user group,percentage,"User Groups CPU System Time (100% = 1 core)",stacked,,apps.plugin,groups
-groups.cpu_guest,,a dimension per user group,percentage,"User Groups CPU Guest Time (100% = 1 core)",stacked,,apps.plugin,groups
-groups.mem,,a dimension per user group,MiB,"User Groups Real Memory (w/o shared)",stacked,,apps.plugin,groups
-groups.rss,,a dimension per user group,MiB,"User Groups Resident Set Size (w/shared)",stacked,,apps.plugin,groups
-groups.vmem,,a dimension per user group,MiB,"User Groups Virtual Memory Size",stacked,,apps.plugin,groups
-groups.swap,,a dimension per user group,MiB,"User Groups Swap Memory",stacked,,apps.plugin,groups
-groups.major_faults,,a dimension per user group,"page faults/s","User Groups Major Page Faults (swap read)",stacked,,apps.plugin,groups
-groups.minor_faults,,a dimension per user group,"page faults/s","User Groups Page Faults (swap read)",stacked,,apps.plugin,groups
-groups.preads,,a dimension per user group,"KiB/s","User Groups Disk Reads",stacked,,apps.plugin,groups
-groups.pwrites,,a dimension per user group,"KiB/s","User Groups Disk Writes",stacked,,apps.plugin,groups
-groups.lreads,,a dimension per user group,"KiB/s","User Groups Disk Logical Reads",stacked,,apps.plugin,groups
-groups.lwrites,,a dimension per user group,"KiB/s","User Groups I/O Logical Writes",stacked,,apps.plugin,groups
-groups.threads,,a dimension per user group,threads,"User Groups Threads",stacked,,apps.plugin,groups
-groups.processes,,a dimension per user group,processes,"User Groups Processes",stacked,,apps.plugin,groups
-groups.voluntary_ctxt_switches,,a dimension per app group,processes,"User Groups Voluntary Context Switches",stacked,,apps.plugin,groups
-groups.involuntary_ctxt_switches,,a dimension per app group,processes,"User Groups Involuntary Context Switches",stacked,,apps.plugin,groups
-groups.uptime,,a dimension per user group,seconds,"User Groups Carried Over Uptime",line,,apps.plugin,groups
-groups.uptime_min,,a dimension per user group,seconds,"User Groups Minimum Uptime",line,,apps.plugin,groups
-groups.uptime_avg,,a dimension per user group,seconds,"User Groups Average Uptime",line,,apps.plugin,groups
-groups.uptime_max,,a dimension per user group,seconds,"User Groups Maximum Uptime",line,,apps.plugin,groups
-groups.files,,a dimension per user group,"open files","User Groups Open Files",stacked,,apps.plugin,groups
-groups.sockets,,a dimension per user group,"open sockets","User Groups Open Sockets",stacked,,apps.plugin,groups
-groups.pipes,,a dimension per user group,"open pipes","User Groups Open Pipes",stacked,,apps.plugin,groups
-users.cpu,,a dimension per user,percentage,"Users CPU Time (100% = 1 core)",stacked,,apps.plugin,users
-users.cpu_user,,a dimension per user,percentage,"Users CPU User Time (100% = 1 core)",stacked,,apps.plugin,users
-users.cpu_system,,a dimension per user,percentage,"Users CPU System Time (100% = 1 core)",stacked,,apps.plugin,users
-users.cpu_guest,,a dimension per user,percentage,"Users CPU Guest Time (100% = 1 core)",stacked,,apps.plugin,users
-users.mem,,a dimension per user,MiB,"Users Real Memory (w/o shared)",stacked,,apps.plugin,users
-users.rss,,a dimension per user,MiB,"Users Resident Set Size (w/shared)",stacked,,apps.plugin,users
-users.vmem,,a dimension per user,MiB,"Users Virtual Memory Size",stacked,,apps.plugin,users
-users.swap,,a dimension per user,MiB,"Users Swap Memory",stacked,,apps.plugin,users
-users.major_faults,,a dimension per user,"page faults/s","Users Major Page Faults (swap read)",stacked,,apps.plugin,users
-users.minor_faults,,a dimension per user,"page faults/s","Users Page Faults (swap read)",stacked,,apps.plugin,users
-users.preads,,a dimension per user,"KiB/s","Users Disk Reads",stacked,,apps.plugin,users
-users.pwrites,,a dimension per user,"KiB/s","Users Disk Writes",stacked,,apps.plugin,users
-users.lreads,,a dimension per user,"KiB/s","Users Disk Logical Reads",stacked,,apps.plugin,users
-users.lwrites,,a dimension per user,"KiB/s","Users I/O Logical Writes",stacked,,apps.plugin,users
-users.threads,,a dimension per user,threads,"Users Threads",stacked,,apps.plugin,users
-users.processes,,a dimension per user,processes,"Users Processes",stacked,,apps.plugin,users
-users.voluntary_ctxt_switches,,a dimension per app group,processes,"Users Voluntary Context Switches",stacked,,apps.plugin,users
-users.involuntary_ctxt_switches,,a dimension per app group,processes,"Users Involuntary Context Switches",stacked,,apps.plugin,users
-users.uptime,,a dimension per user,seconds,"Users Carried Over Uptime",line,,apps.plugin,users
-users.uptime_min,,a dimension per user,seconds,"Users Minimum Uptime",line,,apps.plugin,users
-users.uptime_avg,,a dimension per user,seconds,"Users Average Uptime",line,,apps.plugin,users
-users.uptime_max,,a dimension per user,seconds,"Users Maximum Uptime",line,,apps.plugin,users
-users.files,,a dimension per user,"open files","Users Open Files",stacked,,apps.plugin,users
-users.sockets,,a dimension per user,"open sockets","Users Open Sockets",stacked,,apps.plugin,users
-users.pipes,,a dimension per user,"open pipes","Users Open Pipes",stacked,,apps.plugin,users
-netdata.apps_cpu,,"user, system",milliseconds/s,"Apps Plugin CPU",stacked,,apps.plugin,netdata
-netdata.apps_sizes,,"calls, files, filenames, inode_changes, link_changes, pids, fds, targets, new_pids",files/s,"Apps Plugin Files",line,,apps.plugin,netdata
-netdata.apps_fix,,"utime, stime, gtime, minflt, majflt",percentage,"Apps Plugin Normalization Ratios",line,,apps.plugin,netdata
-netdata.apps_children_fix,,"utime, stime, gtime, minflt, majflt",percentage,"Apps Plugin Exited Children Normalization Ratios",line,,apps.plugin,netdata
\ No newline at end of file
diff --git a/collectors/apps.plugin/multi_metadata.yaml b/collectors/apps.plugin/multi_metadata.yaml
deleted file mode 100644
index 2bdb3dbf8..000000000
--- a/collectors/apps.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,662 +0,0 @@
-name: apps.plugin
-modules:
- # removed system.processes_state
- - meta:
- plugin_name: apps.plugin
- module_name: apps
- monitored_instance:
- name: Applications
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords:
- - applications
- - processes
- - os
- - host monitoring
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: apps.cpu
- description: Apps CPU Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.cpu_user
- description: Apps CPU User Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.cpu_system
- description: Apps CPU System Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.cpu_guest
- description: Apps CPU Guest Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.mem
- description: Apps Real Memory (w/o shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.rss
- description: Apps Resident Set Size (w/shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vmem
- description: Apps Virtual Memory Size
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.swap
- description: Apps Swap Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.major_faults
- description: Apps Major Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.minor_faults
- description: Apps Minor Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.preads
- description: Apps Disk Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.pwrites
- description: Apps Disk Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.lreads
- description: Apps Disk Logical Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.lwrites
- description: Apps I/O Logical Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.threads
- description: Apps Threads
- unit: "threads"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.processes
- description: Apps Processes
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.voluntary_ctxt_switches
- description: Apps Voluntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.involuntary_ctxt_switches
- description: Apps Involuntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.uptime
- description: Apps Carried Over Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.uptime_min
- description: Apps Minimum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.uptime_avg
- description: Apps Average Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.uptime_max
- description: Apps Maximum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.files
- description: Apps Open Files
- unit: "open files"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.sockets
- description: Apps Open Sockets
- unit: "open sockets"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.pipes
- description: Apps Open Pipes
- unit: "open pipes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - meta:
- plugin_name: apps.plugin
- module_name: groups
- monitored_instance:
- name: User Groups
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords:
- - groups
- - processes
- - user auditing
- - authorization
- - os
- - host monitoring
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: groups.cpu
- description: User Groups CPU Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.cpu_user
- description: User Groups CPU User Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.cpu_system
- description: User Groups CPU System Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.cpu_guest
- description: User Groups CPU Guest Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.mem
- description: User Groups Real Memory (w/o shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.rss
- description: User Groups Resident Set Size (w/shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.vmem
- description: User Groups Virtual Memory Size
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.swap
- description: User Groups Swap Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.major_faults
- description: User Groups Major Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.minor_faults
- description: User Groups Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.preads
- description: User Groups Disk Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.pwrites
- description: User Groups Disk Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.lreads
- description: User Groups Disk Logical Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.lwrites
- description: User Groups I/O Logical Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.threads
- description: User Groups Threads
- unit: "threads"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.processes
- description: User Groups Processes
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.voluntary_ctxt_switches
- description: User Groups Voluntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: groups.involuntary_ctxt_switches
- description: User Groups Involuntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: groups.uptime
- description: User Groups Carried Over Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user group
- - name: groups.uptime_min
- description: User Groups Minimum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user group
- - name: groups.uptime_avg
- description: User Groups Average Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user group
- - name: groups.uptime_max
- description: User Groups Maximum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user group
- - name: groups.files
- description: User Groups Open Files
- unit: "open files"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.sockets
- description: User Groups Open Sockets
- unit: "open sockets"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - name: groups.pipes
- description: User Groups Open Pipes
- unit: "open pipes"
- chart_type: stacked
- dimensions:
- - name: a dimension per user group
- - meta:
- plugin_name: apps.plugin
- module_name: users
- monitored_instance:
- name: Users
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords:
- - users
- - processes
- - os
- - host monitoring
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: users.cpu
- description: Users CPU Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.cpu_user
- description: Users CPU User Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.cpu_system
- description: Users CPU System Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.cpu_guest
- description: Users CPU Guest Time (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.mem
- description: Users Real Memory (w/o shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.rss
- description: Users Resident Set Size (w/shared)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.vmem
- description: Users Virtual Memory Size
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.swap
- description: Users Swap Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.major_faults
- description: Users Major Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.minor_faults
- description: Users Page Faults (swap read)
- unit: "page faults/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.preads
- description: Users Disk Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.pwrites
- description: Users Disk Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.lreads
- description: Users Disk Logical Reads
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.lwrites
- description: Users I/O Logical Writes
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.threads
- description: Users Threads
- unit: "threads"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.processes
- description: Users Processes
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.voluntary_ctxt_switches
- description: Users Voluntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: users.involuntary_ctxt_switches
- description: Users Involuntary Context Switches
- unit: "processes"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: users.uptime
- description: Users Carried Over Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user
- - name: users.uptime_min
- description: Users Minimum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user
- - name: users.uptime_avg
- description: Users Average Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user
- - name: users.uptime_max
- description: Users Maximum Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per user
- - name: users.files
- description: Users Open Files
- unit: "open files"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.sockets
- description: Users Open Sockets
- unit: "open sockets"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: users.pipes
- description: Users Open Pipes
- unit: "open pipes"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
diff --git a/collectors/cgroups.plugin/metadata.yaml b/collectors/cgroups.plugin/metadata.yaml
new file mode 100644
index 000000000..b342d30a3
--- /dev/null
+++ b/collectors/cgroups.plugin/metadata.yaml
@@ -0,0 +1,1058 @@
+plugin_name: cgroups.plugin
+modules:
+ - &module
+ meta: &meta
+ plugin_name: cgroups.plugin
+ module_name: /sys/fs/cgroup
+ monitored_instance:
+ name: Containers
+ link: ""
+ categories:
+ - data-collection.containers-and-vms
+ icon_filename: container.svg
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - containers
+ most_popular: true
+ overview: &overview
+ data_collection: &data_collection
+ metrics_description: "Monitor Containers for performance, resource usage, and health status."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: cgroup_10min_cpu_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: cgroup.cpu_limit
+ info: average cgroup CPU utilization over the last 10 minutes
+ - name: cgroup_ram_in_use
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: cgroup.mem_usage
+ info: cgroup memory utilization
+ - name: cgroup_1m_received_packets_rate
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: cgroup.net_packets
+ info: average number of packets received by the network interface ${label:device} over the last minute
+ - name: cgroup_10s_received_packets_storm
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: cgroup.net_packets
+ info:
+ ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
+ the last minute
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: ""
+ labels:
+ - name: container_name
+ description: TBD
+ - name: image
+ description: TBD
+ metrics:
+ - name: cgroup.cpu_limit
+ description: CPU Usage within the limits
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: cgroup.cpu
+ description: CPU Usage (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: user
+ - name: system
+ - name: cgroup.cpu_per_core
+ description: CPU Usage (100% = 1 core) Per Core
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per core
+ - name: cgroup.throttled
+ description: CPU Throttled Runnable Periods
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: throttled
+ - name: cgroup.throttled_duration
+ description: CPU Throttled Time Duration
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: duration
+ - name: cgroup.cpu_shares
+ description: CPU Time Relative Share
+ unit: "shares"
+ chart_type: line
+ dimensions:
+ - name: shares
+ - name: cgroup.mem
+ description: Memory Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: cache
+ - name: rss
+ - name: swap
+ - name: rss_huge
+ - name: mapped_file
+ - name: cgroup.writeback
+ description: Writeback Memory
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: dirty
+ - name: writeback
+ - name: cgroup.mem_activity
+ description: Memory Activity
+ unit: "MiB/s"
+ chart_type: line
+ dimensions:
+ - name: in
+ - name: out
+ - name: cgroup.pgfaults
+ description: Memory Page Faults
+ unit: "MiB/s"
+ chart_type: line
+ dimensions:
+ - name: pgfault
+ - name: swap
+ - name: cgroup.mem_usage
+ description: Used Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: ram
+ - name: swap
+ - name: cgroup.mem_usage_limit
+ description: Used RAM within the limits
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: available
+ - name: used
+ - name: cgroup.mem_utilization
+ description: Memory Utilization
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: utilization
+ - name: cgroup.mem_failcnt
+ description: Memory Limit Failures
+ unit: "count"
+ chart_type: line
+ dimensions:
+ - name: failures
+ - name: cgroup.io
+ description: I/O Bandwidth (all disks)
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.serviced_ops
+ description: Serviced I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.throttle_io
+ description: Throttle I/O Bandwidth (all disks)
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.throttle_serviced_ops
+ description: Throttle Serviced I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.queued_ops
+ description: Queued I/O Operations (all disks)
+ unit: "operations"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.merged_ops
+ description: Merged I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: cgroup.cpu_some_pressure
+ description: CPU some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.cpu_some_pressure_stall_time
+ description: CPU some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup.cpu_full_pressure
+ description: CPU full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.cpu_full_pressure_stall_time
+ description: CPU full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup.memory_some_pressure
+ description: Memory some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.memory_some_pressure_stall_time
+ description: Memory some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup.memory_full_pressure
+ description: Memory full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.memory_full_pressure_stall_time
+ description: Memory full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup.io_some_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.io_some_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup.io_full_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: cgroup.io_full_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: cgroup network device
+ description: ""
+ labels:
+ - name: container_name
+ description: TBD
+ - name: image
+ description: TBD
+ - name: device
+ description: TBD
+ - name: interface_type
+ description: TBD
+ metrics:
+ - name: cgroup.net_net
+ description: Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: cgroup.net_packets
+ description: Packets
+ unit: "pps"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast
+ - name: cgroup.net_errors
+ description: Interface Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: cgroup.net_drops
+ description: Interface Drops
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: cgroup.net_fifo
+ description: Interface FIFO Buffer Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: transmit
+ - name: cgroup.net_compressed
+ description: Interface FIFO Buffer Errors
+ unit: "pps"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: sent
+ - name: cgroup.net_events
+ description: Network Interface Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: frames
+ - name: collisions
+ - name: carrier
+ - name: cgroup.net_operstate
+ description: Interface Operational State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: notpresent
+ - name: lowerlayerdown
+ - name: testing
+ - name: dormant
+ - name: unknown
+ - name: cgroup.net_carrier
+ description: Interface Physical Link State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: cgroup.net_mtu
+ description: Interface MTU
+ unit: "octets"
+ chart_type: line
+ dimensions:
+ - name: mtu
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: Kubernetes Containers
+ link: https://kubernetes.io/
+ icon_filename: kubernetes.svg
+ categories:
+ - data-collection.containers-and-vms
+ - data-collection.kubernetes
+ keywords:
+ - k8s
+ - kubernetes
+ - pods
+ - containers
+ overview:
+ <<: *overview
+ data-collection:
+ <<: *data_collection
+ metrics_description: Monitor Kubernetes Clusters for performance, resource usage, and health status.
+ alerts:
+ - name: k8s_cgroup_10min_cpu_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: k8s.cgroup.cpu_limit
+ info: average cgroup CPU utilization over the last 10 minutes
+ - name: k8s_cgroup_ram_in_use
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: k8s.cgroup.mem_usage
+ info: cgroup memory utilization
+ - name: k8s_cgroup_1m_received_packets_rate
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: k8s.cgroup.net_packets
+ info: average number of packets received by the network interface ${label:device} over the last minute
+ - name: k8s_cgroup_10s_received_packets_storm
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
+ metric: k8s.cgroup.net_packets
+ info:
+ ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
+ the last minute
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: k8s cgroup
+ description: ""
+ labels:
+ - name: k8s_namespace
+ description: TBD
+ - name: k8s_pod_name
+ description: TBD
+ - name: k8s_pod_uid
+ description: TBD
+ - name: k8s_controller_kind
+ description: TBD
+ - name: k8s_controller_name
+ description: TBD
+ - name: k8s_node_name
+ description: TBD
+ - name: k8s_container_name
+ description: TBD
+ - name: k8s_container_id
+ description: TBD
+ - name: k8s_kind
+ description: TBD
+ - name: k8s_qos_class
+ description: TBD
+ - name: k8s_cluster_id
+ description: TBD
+ metrics:
+ - name: k8s.cgroup.cpu_limit
+ description: CPU Usage within the limits
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: k8s.cgroup.cpu
+ description: CPU Usage (100% = 1000 mCPU)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: user
+ - name: system
+ - name: k8s.cgroup.cpu_per_core
+ description: CPU Usage (100% = 1000 mCPU) Per Core
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per core
+ - name: k8s.cgroup.throttled
+ description: CPU Throttled Runnable Periods
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: throttled
+ - name: k8s.cgroup.throttled_duration
+ description: CPU Throttled Time Duration
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: duration
+ - name: k8s.cgroup.cpu_shares
+ description: CPU Time Relative Share
+ unit: "shares"
+ chart_type: line
+ dimensions:
+ - name: shares
+ - name: k8s.cgroup.mem
+ description: Memory Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: cache
+ - name: rss
+ - name: swap
+ - name: rss_huge
+ - name: mapped_file
+ - name: k8s.cgroup.writeback
+ description: Writeback Memory
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: dirty
+ - name: writeback
+ - name: k8s.cgroup.mem_activity
+ description: Memory Activity
+ unit: "MiB/s"
+ chart_type: line
+ dimensions:
+ - name: in
+ - name: out
+ - name: k8s.cgroup.pgfaults
+ description: Memory Page Faults
+ unit: "MiB/s"
+ chart_type: line
+ dimensions:
+ - name: pgfault
+ - name: swap
+ - name: k8s.cgroup.mem_usage
+ description: Used Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: ram
+ - name: swap
+ - name: k8s.cgroup.mem_usage_limit
+ description: Used RAM within the limits
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: available
+ - name: used
+ - name: k8s.cgroup.mem_utilization
+ description: Memory Utilization
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: utilization
+ - name: k8s.cgroup.mem_failcnt
+ description: Memory Limit Failures
+ unit: "count"
+ chart_type: line
+ dimensions:
+ - name: failures
+ - name: k8s.cgroup.io
+ description: I/O Bandwidth (all disks)
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.serviced_ops
+ description: Serviced I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.throttle_io
+ description: Throttle I/O Bandwidth (all disks)
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.throttle_serviced_ops
+ description: Throttle Serviced I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.queued_ops
+ description: Queued I/O Operations (all disks)
+ unit: "operations"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.merged_ops
+ description: Merged I/O Operations (all disks)
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: k8s.cgroup.cpu_some_pressure
+ description: CPU some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.cpu_some_pressure_stall_time
+ description: CPU some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s.cgroup.cpu_full_pressure
+ description: CPU full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.cpu_full_pressure_stall_time
+ description: CPU full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s.cgroup.memory_some_pressure
+ description: Memory some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.memory_some_pressure_stall_time
+ description: Memory some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s.cgroup.memory_full_pressure
+ description: Memory full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.memory_full_pressure_stall_time
+ description: Memory full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s.cgroup.io_some_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.io_some_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s.cgroup.io_full_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: k8s.cgroup.io_full_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: k8s cgroup network device
+ description: ""
+ labels:
+ - name: device
+ description: TBD
+ - name: interface_type
+ description: TBD
+ - name: k8s_namespace
+ description: TBD
+ - name: k8s_pod_name
+ description: TBD
+ - name: k8s_pod_uid
+ description: TBD
+ - name: k8s_controller_kind
+ description: TBD
+ - name: k8s_controller_name
+ description: TBD
+ - name: k8s_node_name
+ description: TBD
+ - name: k8s_container_name
+ description: TBD
+ - name: k8s_container_id
+ description: TBD
+ - name: k8s_kind
+ description: TBD
+ - name: k8s_qos_class
+ description: TBD
+ - name: k8s_cluster_id
+ description: TBD
+ metrics:
+ - name: k8s.cgroup.net_net
+ description: Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: k8s.cgroup.net_packets
+ description: Packets
+ unit: "pps"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast
+ - name: k8s.cgroup.net_errors
+ description: Interface Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: k8s.cgroup.net_drops
+ description: Interface Drops
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: k8s.cgroup.net_fifo
+ description: Interface FIFO Buffer Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: transmit
+ - name: k8s.cgroup.net_compressed
+ description: Interface FIFO Buffer Errors
+ unit: "pps"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: sent
+ - name: k8s.cgroup.net_events
+ description: Network Interface Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: frames
+ - name: collisions
+ - name: carrier
+ - name: k8s.cgroup.net_operstate
+ description: Interface Operational State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: notpresent
+ - name: lowerlayerdown
+ - name: testing
+ - name: dormant
+ - name: unknown
+ - name: k8s.cgroup.net_carrier
+ description: Interface Physical Link State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: k8s.cgroup.net_mtu
+ description: Interface MTU
+ unit: "octets"
+ chart_type: line
+ dimensions:
+ - name: mtu
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: Systemd Services
+ link: ""
+ icon_filename: systemd.svg
+ categories:
+ - data-collection.systemd
+ keywords:
+ - systemd
+ - services
+ overview:
+ <<: *overview
+ data-collection:
+ <<: *data_collection
+ metrics_desctiption: "Monitor Systemd Services for performance, resource usage, and health status."
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: services.cpu
+ description: Systemd Services CPU utilization (100% = 1 core)
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_usage
+ description: Systemd Services Used Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_rss
+ description: Systemd Services RSS Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_mapped
+ description: Systemd Services Mapped Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_cache
+ description: Systemd Services Cache Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_writeback
+ description: Systemd Services Writeback Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_pgfault
+ description: Systemd Services Memory Minor Page Faults
+ unit: "MiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_pgmajfault
+ description: Systemd Services Memory Major Page Faults
+ unit: "MiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_pgpgin
+ description: Systemd Services Memory Charging Activity
+ unit: "MiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_pgpgout
+ description: Systemd Services Memory Uncharging Activity
+ unit: "MiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.mem_failcnt
+ description: Systemd Services Memory Limit Failures
+ unit: "failures"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.swap_usage
+ description: Systemd Services Swap Memory Used
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.io_read
+ description: Systemd Services Disk Read Bandwidth
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.io_write
+ description: Systemd Services Disk Write Bandwidth
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.io_ops_read
+ description: Systemd Services Disk Read Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.io_ops_write
+ description: Systemd Services Disk Write Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.throttle_io_read
+ description: Systemd Services Throttle Disk Read Bandwidth
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.services.throttle_io_write
+ description: Systemd Services Throttle Disk Write Bandwidth
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.throttle_io_ops_read
+ description: Systemd Services Throttle Disk Read Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: throttle_io_ops_write
+ description: Systemd Services Throttle Disk Write Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.queued_io_ops_read
+ description: Systemd Services Queued Disk Read Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.queued_io_ops_write
+ description: Systemd Services Queued Disk Write Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.merged_io_ops_read
+ description: Systemd Services Merged Disk Read Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.merged_io_ops_write
+ description: Systemd Services Merged Disk Write Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: Virtual Machines
+ link: ""
+ icon_filename: container.svg
+ categories:
+ - data-collection.containers-and-vms
+ keywords:
+ - vms
+ - virtualization
+ - container
+ overview:
+ <<: *overview
+ data_collection:
+ <<: *data_collection
+ metrics_description: "Monitor Virtual Machines for performance, resource usage, and health status."
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: LXC Containers
+ link: ""
+ icon_filename: lxc.png
+ categories:
+ - data-collection.containers-and-vms
+ keywords:
+ - lxc
+ - lxd
+ - container
+ overview:
+ <<: *overview
+ data_collection:
+ <<: *data_collection
+ metrics_description: "Monitor LXC Containers for performance, resource usage, and health status."
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: Libvirt Containers
+ link: ""
+ icon_filename: libvirt.png
+ categories:
+ - data-collection.containers-and-vms
+ keywords:
+ - libvirt
+ - container
+ overview:
+ <<: *overview
+ data_collection:
+ <<: *data_collection
+ metrics_description: "Monitor Libvirt for performance, resource usage, and health status."
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: oVirt Containers
+ link: ""
+ icon_filename: ovirt.svg
+ categories:
+ - data-collection.containers-and-vms
+ keywords:
+ - ovirt
+ - container
+ overview:
+ <<: *overview
+ data_collection:
+ <<: *data_collection
+ metrics_description: "Monitor oVirt for performance, resource usage, and health status."
+ - <<: *module
+ meta:
+ <<: *meta
+ monitored_instance:
+ name: Proxmox Containers
+ link: ""
+ icon_filename: proxmox.png
+ categories:
+ - data-collection.containers-and-vms
+ keywords:
+ - proxmox
+ - container
+ overview:
+ <<: *overview
+ data_collection:
+ <<: *data_collection
+ metrics_description: "Monitor Proxmox for performance, resource usage, and health status."
diff --git a/collectors/cgroups.plugin/metrics.csv b/collectors/cgroups.plugin/metrics.csv
deleted file mode 100644
index aae057baa..000000000
--- a/collectors/cgroups.plugin/metrics.csv
+++ /dev/null
@@ -1,109 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-cgroup.cpu_limit,cgroup,used,percentage,"CPU Usage within the limits",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu,cgroup,"user, system",percentage,"CPU Usage (100% = 1 core)",stacked,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_per_core,cgroup,a dimension per core,percentage,"CPU Usage (100% = 1 core) Per Core",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.throttled,cgroup,throttled,percentage,"CPU Throttled Runnable Periods",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.throttled_duration,cgroup,duration,ms,"CPU Throttled Time Duration",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_shares,cgroup,shares,shares,"CPU Time Relative Share",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem,cgroup,"cache, rss, swap, rss_huge, mapped_file",MiB,"Memory Usage",stacked,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.writeback,cgroup,"dirty, writeback",MiB,"Writeback Memory",area,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem_activity,cgroup,"in, out",MiB/s,"Memory Activity",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.pgfaults,cgroup,"pgfault, swap",MiB/s,"Memory Page Faults",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem_usage,cgroup,"ram, swap",MiB,"Used Memory",stacked,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem_usage_limit,cgroup,"available, used",MiB,"Used RAM within the limits",stacked,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem_utilization,cgroup,utilization,percentage,"Memory Utilization",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.mem_failcnt,cgroup,failures,count,"Memory Limit Failures",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.io,cgroup,"read, write",KiB/s,"I/O Bandwidth (all disks)",area,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.serviced_ops,cgroup,"read, write",operations/s,"Serviced I/O Operations (all disks)",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.throttle_io,cgroup,"read, write",KiB/s,"Throttle I/O Bandwidth (all disks)",area,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.throttle_serviced_ops,cgroup,"read, write",operations/s,"Throttle Serviced I/O Operations (all disks)",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.queued_ops,cgroup,"read, write",operations,"Queued I/O Operations (all disks)",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.merged_ops,cgroup,"read, write",operations/s,"Merged I/O Operations (all disks)",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_some_pressure,cgroup,"some10, some60, some300",percentage,"CPU some pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_some_pressure_stall_time,cgroup,time,ms,"CPU some pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_full_pressure,cgroup,"some10, some60, some300",percentage,"CPU full pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.cpu_full_pressure_stall_time,cgroup,time,ms,"CPU full pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.memory_some_pressure,cgroup,"some10, some60, some300",percentage,"Memory some pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.memory_some_pressure_stall_time,cgroup,time,ms,"Memory some pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.memory_full_pressure,cgroup,"some10, some60, some300",percentage,"Memory full pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.memory_full_pressure_stall_time,cgroup,time,ms,"Memory full pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.io_some_pressure,cgroup,"some10, some60, some300",percentage,"I/O some pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.io_some_pressure_stall_time,cgroup,time,ms,"I/O some pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.io_full_pressure,cgroup,"some10, some60, some300",percentage,"I/O some pressure",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.io_full_pressure_stall_time,cgroup,time,ms,"I/O some pressure stall time",line,"container_name, image",cgroups.plugin,/sys/fs/cgroup
-cgroup.net_net,"cgroup, network device","received, sent",kilobits/s,"Bandwidth",area,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_packets,"cgroup, network device","received, sent, multicast",pps,"Packets",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_errors,"cgroup, network device","inbound, outbound",errors/s,"Interface Errors",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_drops,"cgroup, network device","inbound, outbound",errors/s,"Interface Drops",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_fifo,"cgroup, network device","receive, transmit",errors/s,"Interface FIFO Buffer Errors",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_compressed,"cgroup, network device","receive, sent",pps,"Interface FIFO Buffer Errors",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_events,"cgroup, network device","frames, collisions, carrier",events/s,"Network Interface Events",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_operstate,"cgroup, network device","up, down, notpresent, lowerlayerdown, testing, dormant, unknown",state,"Interface Operational State",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_carrier,"cgroup, network device","up, down",state,"Interface Physical Link State",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-cgroup.net_mtu,"cgroup, network device",mtu,octets,"Interface MTU",line,"container_name, image, device, interface_type",cgroups.plugin,/proc/net/dev
-k8s.cgroup.cpu_limit,k8s cgroup,used,percentage,"CPU Usage within the limits",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu,k8s cgroup,"user, system",percentage,"CPU Usage (100% = 1000 mCPU)",stacked,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_per_core,k8s cgroup,a dimension per core,percentage,"CPU Usage (100% = 1000 mCPU) Per Core",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.throttled,k8s cgroup,throttled,percentage,"CPU Throttled Runnable Periods",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.throttled_duration,k8s cgroup,duration,ms,"CPU Throttled Time Duration",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_shares,k8s cgroup,shares,shares,"CPU Time Relative Share",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem,k8s cgroup,"cache, rss, swap, rss_huge, mapped_file",MiB,"Memory Usage",stacked,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.writeback,k8s cgroup,"dirty, writeback",MiB,"Writeback Memory",area,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem_activity,k8s cgroup,"in, out",MiB/s,"Memory Activity",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.pgfaults,k8s cgroup,"pgfault, swap",MiB/s,"Memory Page Faults",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem_usage,k8s cgroup,"ram, swap",MiB,"Used Memory",stacked,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem_usage_limit,k8s cgroup,"available, used",MiB,"Used RAM within the limits",stacked,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem_utilization,k8s cgroup,utilization,percentage,"Memory Utilization",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.mem_failcnt,k8s cgroup,failures,count,"Memory Limit Failures",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.io,k8s cgroup,"read, write",KiB/s,"I/O Bandwidth (all disks)",area,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.serviced_ops,k8s cgroup,"read, write",operations/s,"Serviced I/O Operations (all disks)",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.throttle_io,k8s cgroup,"read, write",KiB/s,"Throttle I/O Bandwidth (all disks)",area,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.throttle_serviced_ops,k8s cgroup,"read, write",operations/s,"Throttle Serviced I/O Operations (all disks)",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.queued_ops,k8s cgroup,"read, write",operations,"Queued I/O Operations (all disks)",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.merged_ops,k8s cgroup,"read, write",operations/s,"Merged I/O Operations (all disks)",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_some_pressure,k8s cgroup,"some10, some60, some300",percentage,"CPU some pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_some_pressure_stall_time,k8s cgroup,time,ms,"CPU some pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_full_pressure,k8s cgroup,"some10, some60, some300",percentage,"CPU full pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.cpu_full_pressure_stall_time,k8s cgroup,time,ms,"CPU full pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.memory_some_pressure,k8s cgroup,"some10, some60, some300",percentage,"Memory some pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.memory_some_pressure_stall_time,k8s cgroup,time,ms,"Memory some pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.memory_full_pressure,k8s cgroup,"some10, some60, some300",percentage,"Memory full pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.memory_full_pressure_stall_time,k8s cgroup,time,ms,"Memory full pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.io_some_pressure,k8s cgroup,"some10, some60, some300",percentage,"I/O some pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.io_some_pressure_stall_time,k8s cgroup,time,ms,"I/O some pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.io_full_pressure,k8s cgroup,"some10, some60, some300",percentage,"I/O some pressure",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.io_full_pressure_stall_time,k8s cgroup,time,ms,"I/O some pressure stall time",line,"k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/sys/fs/cgroup
-k8s.cgroup.net_net,"k8s cgroup, network device","received, sent",kilobits/s,"Bandwidth",area,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_packets,"k8s cgroup, network device","received, sent, multicast",pps,"Packets",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_errors,"k8s cgroup, network device","inbound, outbound",errors/s,"Interface Errors",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_drops,"k8s cgroup, network device","inbound, outbound",errors/s,"Interface Drops",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_fifo,"k8s cgroup, network device","receive, transmit",errors/s,"Interface FIFO Buffer Errors",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_compressed,"k8s cgroup, network device","receive, sent",pps,"Interface FIFO Buffer Errors",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_events,"k8s cgroup, network device","frames, collisions, carrier",events/s,"Network Interface Events",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_operstate,"k8s cgroup, network device","up, down, notpresent, lowerlayerdown, testing, dormant, unknown",state,"Interface Operational State",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_carrier,"k8s cgroup, network device","up, down",state,"Interface Physical Link State",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-k8s.cgroup.net_mtu,"k8s cgroup, network device",mtu,octets,"Interface MTU",line,"device, interface_type, k8s_namespace, k8s_pod_name, k8s_pod_uid, k8s_controller_kind, k8s_controller_name, k8s_node_name, k8s_container_name, k8s_container_id, k8s_kind, k8s_qos_class, k8s_cluster_id",cgroups.plugin,/proc/net/dev
-services.cpu,,a dimension per systemd service,percentage,"Systemd Services CPU utilization (100% = 1 core)",stacked,,cgroups.plugin,systemd
-services.mem_usage,,a dimension per systemd service,MiB,"Systemd Services Used Memory",stacked,,cgroups.plugin,systemd
-services.mem_rss,,a dimension per systemd service,MiB,"Systemd Services RSS Memory",stacked,,cgroups.plugin,systemd
-services.mem_mapped,,a dimension per systemd service,MiB,"Systemd Services Mapped Memory",stacked,,cgroups.plugin,systemd
-services.mem_cache,,a dimension per systemd service,MiB,"Systemd Services Cache Memory",stacked,,cgroups.plugin,systemd
-services.mem_writeback,,a dimension per systemd service,MiB,"Systemd Services Writeback Memory",stacked,,cgroups.plugin,systemd
-services.mem_pgfault,,a dimension per systemd service,MiB/s,"Systemd Services Memory Minor Page Faults",stacked,,cgroups.plugin,systemd
-services.mem_pgmajfault,,a dimension per systemd service,MiB/s,"Systemd Services Memory Major Page Faults",stacked,,cgroups.plugin,systemd
-services.mem_pgpgin,,a dimension per systemd service,MiB/s,"Systemd Services Memory Charging Activity",stacked,,cgroups.plugin,systemd
-services.mem_pgpgout,,a dimension per systemd service,MiB/s,"Systemd Services Memory Uncharging Activity",stacked,,cgroups.plugin,systemd
-services.mem_failcnt,,a dimension per systemd service,failures,"Systemd Services Memory Limit Failures",stacked,,cgroups.plugin,systemd
-services.swap_usage,,a dimension per systemd service,MiB,"Systemd Services Swap Memory Used",stacked,,cgroups.plugin,systemd
-services.io_read,,a dimension per systemd service,KiB/s,"Systemd Services Disk Read Bandwidth",stacked,,cgroups.plugin,systemd
-services.io_write,,a dimension per systemd service,KiB/s,"Systemd Services Disk Write Bandwidth",stacked,,cgroups.plugin,systemd
-services.io_ops_read,,a dimension per systemd service,operations/s,"Systemd Services Disk Read Operations",stacked,,cgroups.plugin,systemd
-services.io_ops_write,,a dimension per systemd service,operations/s,"Systemd Services Disk Write Operations",stacked,,cgroups.plugin,systemd
-services.throttle_io_read,,a dimension per systemd service,KiB/s,"Systemd Services Throttle Disk Read Bandwidth",stacked,,cgroups.plugin,systemd
-services.services.throttle_io_write,,a dimension per systemd service,KiB/s,"Systemd Services Throttle Disk Write Bandwidth",stacked,,cgroups.plugin,systemd
-services.throttle_io_ops_read,,a dimension per systemd service,operations/s,"Systemd Services Throttle Disk Read Operations",stacked,,cgroups.plugin,systemd
-throttle_io_ops_write,,a dimension per systemd service,operations/s,"Systemd Services Throttle Disk Write Operations",stacked,,cgroups.plugin,systemd
-services.queued_io_ops_read,,a dimension per systemd service,operations/s,"Systemd Services Queued Disk Read Operations",stacked,,cgroups.plugin,systemd
-services.queued_io_ops_write,,a dimension per systemd service,operations/s,"Systemd Services Queued Disk Write Operations",stacked,,cgroups.plugin,systemd
-services.merged_io_ops_read,,a dimension per systemd service,operations/s,"Systemd Services Merged Disk Read Operations",stacked,,cgroups.plugin,systemd
-services.merged_io_ops_write,,a dimension per systemd service,operations/s,"Systemd Services Merged Disk Write Operations",stacked,,cgroups.plugin,systemd
\ No newline at end of file
diff --git a/collectors/cgroups.plugin/multi_metadata.yaml b/collectors/cgroups.plugin/multi_metadata.yaml
deleted file mode 100644
index b2b13c2d5..000000000
--- a/collectors/cgroups.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,1023 +0,0 @@
-name: cgroups.plugin
-modules:
- - &module
- meta: &meta
- plugin_name: cgroups.plugin
- module_name: /sys/fs/cgroup
- monitored_instance:
- name: Containers
- link: ""
- categories:
- - data-collection.containers-and-vms
- icon_filename: netdata.png
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ""
- keywords:
- - containers
- most_popular: true
- overview:
- data_collection:
- metrics_description: ""
- method_description: ""
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ""
- default_behavior:
- auto_detection:
- description: ""
- limits:
- description: ""
- performance_impact:
- description: ""
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ""
- description: ""
- options:
- description: ""
- folding:
- title: ""
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ""
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: cgroup_10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: cgroup.cpu_limit
- info: average cgroup CPU utilization over the last 10 minutes
- - name: cgroup_ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: cgroup.mem_usage
- info: cgroup memory utilization
- - name: cgroup_1m_received_packets_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: cgroup.net_packets
- info: average number of packets received by the network interface ${label:device} over the last minute
- - name: cgroup_10s_received_packets_storm
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: cgroup.net_packets
- info:
- ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
- the last minute
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels:
- - name: container_name
- description: TBD
- - name: image
- description: TBD
- metrics:
- - name: cgroup.cpu_limit
- description: CPU Usage within the limits
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: used
- - name: cgroup.cpu
- description: CPU Usage (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: user
- - name: system
- - name: cgroup.cpu_per_core
- description: CPU Usage (100% = 1 core) Per Core
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per core
- - name: cgroup.throttled
- description: CPU Throttled Runnable Periods
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: throttled
- - name: cgroup.throttled_duration
- description: CPU Throttled Time Duration
- unit: "ms"
- chart_type: line
- dimensions:
- - name: duration
- - name: cgroup.cpu_shares
- description: CPU Time Relative Share
- unit: "shares"
- chart_type: line
- dimensions:
- - name: shares
- - name: cgroup.mem
- description: Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: cache
- - name: rss
- - name: swap
- - name: rss_huge
- - name: mapped_file
- - name: cgroup.writeback
- description: Writeback Memory
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: dirty
- - name: writeback
- - name: cgroup.mem_activity
- description: Memory Activity
- unit: "MiB/s"
- chart_type: line
- dimensions:
- - name: in
- - name: out
- - name: cgroup.pgfaults
- description: Memory Page Faults
- unit: "MiB/s"
- chart_type: line
- dimensions:
- - name: pgfault
- - name: swap
- - name: cgroup.mem_usage
- description: Used Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: ram
- - name: swap
- - name: cgroup.mem_usage_limit
- description: Used RAM within the limits
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: available
- - name: used
- - name: cgroup.mem_utilization
- description: Memory Utilization
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: utilization
- - name: cgroup.mem_failcnt
- description: Memory Limit Failures
- unit: "count"
- chart_type: line
- dimensions:
- - name: failures
- - name: cgroup.io
- description: I/O Bandwidth (all disks)
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: cgroup.serviced_ops
- description: Serviced I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: cgroup.throttle_io
- description: Throttle I/O Bandwidth (all disks)
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: cgroup.throttle_serviced_ops
- description: Throttle Serviced I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: cgroup.queued_ops
- description: Queued I/O Operations (all disks)
- unit: "operations"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: cgroup.merged_ops
- description: Merged I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: cgroup.cpu_some_pressure
- description: CPU some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.cpu_some_pressure_stall_time
- description: CPU some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup.cpu_full_pressure
- description: CPU full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.cpu_full_pressure_stall_time
- description: CPU full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup.memory_some_pressure
- description: Memory some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.memory_some_pressure_stall_time
- description: Memory some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup.memory_full_pressure
- description: Memory full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.memory_full_pressure_stall_time
- description: Memory full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup.io_some_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.io_some_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup.io_full_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: cgroup.io_full_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: cgroup network device
- description: ""
- labels:
- - name: container_name
- description: TBD
- - name: image
- description: TBD
- - name: device
- description: TBD
- - name: interface_type
- description: TBD
- metrics:
- - name: cgroup.net_net
- description: Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: cgroup.net_packets
- description: Packets
- unit: "pps"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast
- - name: cgroup.net_errors
- description: Interface Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: cgroup.net_drops
- description: Interface Drops
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: cgroup.net_fifo
- description: Interface FIFO Buffer Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: receive
- - name: transmit
- - name: cgroup.net_compressed
- description: Interface FIFO Buffer Errors
- unit: "pps"
- chart_type: line
- dimensions:
- - name: receive
- - name: sent
- - name: cgroup.net_events
- description: Network Interface Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: frames
- - name: collisions
- - name: carrier
- - name: cgroup.net_operstate
- description: Interface Operational State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: notpresent
- - name: lowerlayerdown
- - name: testing
- - name: dormant
- - name: unknown
- - name: cgroup.net_carrier
- description: Interface Physical Link State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: cgroup.net_mtu
- description: Interface MTU
- unit: "octets"
- chart_type: line
- dimensions:
- - name: mtu
-
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: Kubernetes Containers
- link: https://kubernetes.io/
- icon_filename: k8s.png
- categories:
- - data-collection.containers-vms
- - data-collection.kubernetes
- keywords:
- - k8s
- - kubernetes
- - pods
- - containers
- alerts:
- - name: k8s_cgroup_10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: k8s.cgroup.cpu_limit
- info: average cgroup CPU utilization over the last 10 minutes
- - name: k8s_cgroup_ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: k8s.cgroup.mem_usage
- info: cgroup memory utilization
- - name: k8s_cgroup_1m_received_packets_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: k8s.cgroup.net_packets
- info: average number of packets received by the network interface ${label:device} over the last minute
- - name: k8s_cgroup_10s_received_packets_storm
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf
- metric: k8s.cgroup.net_packets
- info:
- ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
- the last minute
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: k8s cgroup
- description: ""
- labels:
- - name: k8s_namespace
- description: TBD
- - name: k8s_pod_name
- description: TBD
- - name: k8s_pod_uid
- description: TBD
- - name: k8s_controller_kind
- description: TBD
- - name: k8s_controller_name
- description: TBD
- - name: k8s_node_name
- description: TBD
- - name: k8s_container_name
- description: TBD
- - name: k8s_container_id
- description: TBD
- - name: k8s_kind
- description: TBD
- - name: k8s_qos_class
- description: TBD
- - name: k8s_cluster_id
- description: TBD
- metrics:
- - name: k8s.cgroup.cpu_limit
- description: CPU Usage within the limits
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: used
- - name: k8s.cgroup.cpu
- description: CPU Usage (100% = 1000 mCPU)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: user
- - name: system
- - name: k8s.cgroup.cpu_per_core
- description: CPU Usage (100% = 1000 mCPU) Per Core
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per core
- - name: k8s.cgroup.throttled
- description: CPU Throttled Runnable Periods
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: throttled
- - name: k8s.cgroup.throttled_duration
- description: CPU Throttled Time Duration
- unit: "ms"
- chart_type: line
- dimensions:
- - name: duration
- - name: k8s.cgroup.cpu_shares
- description: CPU Time Relative Share
- unit: "shares"
- chart_type: line
- dimensions:
- - name: shares
- - name: k8s.cgroup.mem
- description: Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: cache
- - name: rss
- - name: swap
- - name: rss_huge
- - name: mapped_file
- - name: k8s.cgroup.writeback
- description: Writeback Memory
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: dirty
- - name: writeback
- - name: k8s.cgroup.mem_activity
- description: Memory Activity
- unit: "MiB/s"
- chart_type: line
- dimensions:
- - name: in
- - name: out
- - name: k8s.cgroup.pgfaults
- description: Memory Page Faults
- unit: "MiB/s"
- chart_type: line
- dimensions:
- - name: pgfault
- - name: swap
- - name: k8s.cgroup.mem_usage
- description: Used Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: ram
- - name: swap
- - name: k8s.cgroup.mem_usage_limit
- description: Used RAM within the limits
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: available
- - name: used
- - name: k8s.cgroup.mem_utilization
- description: Memory Utilization
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: utilization
- - name: k8s.cgroup.mem_failcnt
- description: Memory Limit Failures
- unit: "count"
- chart_type: line
- dimensions:
- - name: failures
- - name: k8s.cgroup.io
- description: I/O Bandwidth (all disks)
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.serviced_ops
- description: Serviced I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.throttle_io
- description: Throttle I/O Bandwidth (all disks)
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.throttle_serviced_ops
- description: Throttle Serviced I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.queued_ops
- description: Queued I/O Operations (all disks)
- unit: "operations"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.merged_ops
- description: Merged I/O Operations (all disks)
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: k8s.cgroup.cpu_some_pressure
- description: CPU some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.cpu_some_pressure_stall_time
- description: CPU some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s.cgroup.cpu_full_pressure
- description: CPU full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.cpu_full_pressure_stall_time
- description: CPU full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s.cgroup.memory_some_pressure
- description: Memory some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.memory_some_pressure_stall_time
- description: Memory some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s.cgroup.memory_full_pressure
- description: Memory full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.memory_full_pressure_stall_time
- description: Memory full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s.cgroup.io_some_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.io_some_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s.cgroup.io_full_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: k8s.cgroup.io_full_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: k8s cgroup network device
- description: ""
- labels:
- - name: device
- description: TBD
- - name: interface_type
- description: TBD
- - name: k8s_namespace
- description: TBD
- - name: k8s_pod_name
- description: TBD
- - name: k8s_pod_uid
- description: TBD
- - name: k8s_controller_kind
- description: TBD
- - name: k8s_controller_name
- description: TBD
- - name: k8s_node_name
- description: TBD
- - name: k8s_container_name
- description: TBD
- - name: k8s_container_id
- description: TBD
- - name: k8s_kind
- description: TBD
- - name: k8s_qos_class
- description: TBD
- - name: k8s_cluster_id
- description: TBD
- metrics:
- - name: k8s.cgroup.net_net
- description: Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: k8s.cgroup.net_packets
- description: Packets
- unit: "pps"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast
- - name: k8s.cgroup.net_errors
- description: Interface Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: k8s.cgroup.net_drops
- description: Interface Drops
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: k8s.cgroup.net_fifo
- description: Interface FIFO Buffer Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: receive
- - name: transmit
- - name: k8s.cgroup.net_compressed
- description: Interface FIFO Buffer Errors
- unit: "pps"
- chart_type: line
- dimensions:
- - name: receive
- - name: sent
- - name: k8s.cgroup.net_events
- description: Network Interface Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: frames
- - name: collisions
- - name: carrier
- - name: k8s.cgroup.net_operstate
- description: Interface Operational State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: notpresent
- - name: lowerlayerdown
- - name: testing
- - name: dormant
- - name: unknown
- - name: k8s.cgroup.net_carrier
- description: Interface Physical Link State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: k8s.cgroup.net_mtu
- description: Interface MTU
- unit: "octets"
- chart_type: line
- dimensions:
- - name: mtu
-
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: Systemd Services
- link: ""
- icon_filename: systemd.png
- categories:
- - data-collection.systemd
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.cpu
- description: Systemd Services CPU utilization (100% = 1 core)
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_usage
- description: Systemd Services Used Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_rss
- description: Systemd Services RSS Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_mapped
- description: Systemd Services Mapped Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_cache
- description: Systemd Services Cache Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_writeback
- description: Systemd Services Writeback Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_pgfault
- description: Systemd Services Memory Minor Page Faults
- unit: "MiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_pgmajfault
- description: Systemd Services Memory Major Page Faults
- unit: "MiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_pgpgin
- description: Systemd Services Memory Charging Activity
- unit: "MiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_pgpgout
- description: Systemd Services Memory Uncharging Activity
- unit: "MiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.mem_failcnt
- description: Systemd Services Memory Limit Failures
- unit: "failures"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.swap_usage
- description: Systemd Services Swap Memory Used
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.io_read
- description: Systemd Services Disk Read Bandwidth
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.io_write
- description: Systemd Services Disk Write Bandwidth
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.io_ops_read
- description: Systemd Services Disk Read Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.io_ops_write
- description: Systemd Services Disk Write Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.throttle_io_read
- description: Systemd Services Throttle Disk Read Bandwidth
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.services.throttle_io_write
- description: Systemd Services Throttle Disk Write Bandwidth
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.throttle_io_ops_read
- description: Systemd Services Throttle Disk Read Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: throttle_io_ops_write
- description: Systemd Services Throttle Disk Write Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.queued_io_ops_read
- description: Systemd Services Queued Disk Read Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.queued_io_ops_write
- description: Systemd Services Queued Disk Write Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.merged_io_ops_read
- description: Systemd Services Merged Disk Read Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.merged_io_ops_write
- description: Systemd Services Merged Disk Write Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: Virtual Machines
- link: ""
- icon_filename: k8s.png
- categories:
- - data-collection.containers-vms
- - data-collection.kubernetes
- keywords:
- - vms
- - virtualization
- - container
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: LXC Containers
- link: ""
- icon_filename: lxc.png
- categories:
- - data-collection.containers-vms
- keywords:
- - lxc
- - lxd
- - container
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: Libvirt Containers
- link: ""
- icon_filename: libvirt.png
- categories:
- - data-collection.containers-vms
- keywords:
- - libvirt
- - container
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: oVirt Containers
- link: ""
- icon_filename: ovirt.png
- categories:
- - data-collection.containers-vms
- keywords:
- - ovirt
- - container
- - <<: *module
- meta:
- <<: *meta
- monitored_instance:
- name: Proxmox Containers
- link: ""
- icon_filename: proxmox.png
- categories:
- - data-collection.containers-vms
- keywords:
- - proxmox
- - container
diff --git a/collectors/cgroups.plugin/sys_fs_cgroup.c b/collectors/cgroups.plugin/sys_fs_cgroup.c
index fb805e63c..9c7488c82 100644
--- a/collectors/cgroups.plugin/sys_fs_cgroup.c
+++ b/collectors/cgroups.plugin/sys_fs_cgroup.c
@@ -62,6 +62,8 @@ static int cgroup_enable_pressure_io_some = CONFIG_BOOLEAN_AUTO;
static int cgroup_enable_pressure_io_full = CONFIG_BOOLEAN_AUTO;
static int cgroup_enable_pressure_memory_some = CONFIG_BOOLEAN_AUTO;
static int cgroup_enable_pressure_memory_full = CONFIG_BOOLEAN_AUTO;
+static int cgroup_enable_pressure_irq_some = CONFIG_BOOLEAN_NO;
+static int cgroup_enable_pressure_irq_full = CONFIG_BOOLEAN_AUTO;
static int cgroup_enable_systemd_services = CONFIG_BOOLEAN_YES;
static int cgroup_enable_systemd_services_detailed_memory = CONFIG_BOOLEAN_NO;
@@ -474,6 +476,7 @@ void read_cgroup_plugin_configuration() {
" !*.mount "
" !*.partition "
" !*.service "
+ " !*.service/udev "
" !*.socket "
" !*.slice "
" !*.swap "
@@ -828,6 +831,7 @@ struct cgroup {
struct pressure cpu_pressure;
struct pressure io_pressure;
struct pressure memory_pressure;
+ struct pressure irq_pressure;
// per cgroup charts
RRDSET *st_cpu;
@@ -1451,28 +1455,33 @@ static inline void cgroup2_read_pressure(struct pressure *res) {
return;
}
- res->some.share_time.value10 = strtod(procfile_lineword(ff, 0, 2), NULL);
- res->some.share_time.value60 = strtod(procfile_lineword(ff, 0, 4), NULL);
- res->some.share_time.value300 = strtod(procfile_lineword(ff, 0, 6), NULL);
- res->some.total_time.value_total = str2ull(procfile_lineword(ff, 0, 8), NULL) / 1000; // us->ms
+ bool did_some = false, did_full = false;
- if (lines > 2) {
- res->full.share_time.value10 = strtod(procfile_lineword(ff, 1, 2), NULL);
- res->full.share_time.value60 = strtod(procfile_lineword(ff, 1, 4), NULL);
- res->full.share_time.value300 = strtod(procfile_lineword(ff, 1, 6), NULL);
- res->full.total_time.value_total = str2ull(procfile_lineword(ff, 1, 8), NULL) / 1000; // us->ms
+ for(size_t l = 0; l < lines ;l++) {
+ const char *key = procfile_lineword(ff, l, 0);
+ if(strcmp(key, "some") == 0) {
+ res->some.share_time.value10 = strtod(procfile_lineword(ff, l, 2), NULL);
+ res->some.share_time.value60 = strtod(procfile_lineword(ff, l, 4), NULL);
+ res->some.share_time.value300 = strtod(procfile_lineword(ff, l, 6), NULL);
+ res->some.total_time.value_total = str2ull(procfile_lineword(ff, l, 8), NULL) / 1000; // us->ms
+ did_some = true;
+ }
+ else if(strcmp(key, "full") == 0) {
+ res->full.share_time.value10 = strtod(procfile_lineword(ff, l, 2), NULL);
+ res->full.share_time.value60 = strtod(procfile_lineword(ff, l, 4), NULL);
+ res->full.share_time.value300 = strtod(procfile_lineword(ff, l, 6), NULL);
+ res->full.total_time.value_total = str2ull(procfile_lineword(ff, l, 8), NULL) / 1000; // us->ms
+ did_full = true;
+ }
}
- res->updated = 1;
+ res->updated = (did_full || did_some) ? 1 : 0;
- if (unlikely(res->some.enabled == CONFIG_BOOLEAN_AUTO)) {
- res->some.enabled = CONFIG_BOOLEAN_YES;
- if (lines > 2) {
- res->full.enabled = CONFIG_BOOLEAN_YES;
- } else {
- res->full.enabled = CONFIG_BOOLEAN_NO;
- }
- }
+ if(unlikely(res->some.enabled == CONFIG_BOOLEAN_AUTO))
+ res->some.enabled = (did_some) ? CONFIG_BOOLEAN_YES : CONFIG_BOOLEAN_NO;
+
+ if(unlikely(res->full.enabled == CONFIG_BOOLEAN_AUTO))
+ res->full.enabled = (did_full) ? CONFIG_BOOLEAN_YES : CONFIG_BOOLEAN_NO;
}
}
@@ -1637,6 +1646,7 @@ static inline void read_cgroup(struct cgroup *cg) {
cgroup2_read_pressure(&cg->cpu_pressure);
cgroup2_read_pressure(&cg->io_pressure);
cgroup2_read_pressure(&cg->memory_pressure);
+ cgroup2_read_pressure(&cg->irq_pressure);
cgroup_read_memory(&cg->memory, 1);
}
}
@@ -1851,6 +1861,7 @@ static inline void cgroup_free(struct cgroup *cg) {
free_pressure(&cg->cpu_pressure);
free_pressure(&cg->io_pressure);
free_pressure(&cg->memory_pressure);
+ free_pressure(&cg->irq_pressure);
freez(cg->id);
freez(cg->intermediate_id);
@@ -2465,6 +2476,18 @@ static inline void discovery_update_filenames() {
netdata_log_debug(D_CGROUP, "memory.pressure file for cgroup '%s': '%s' does not exist", cg->id, filename);
}
}
+
+ if (unlikely((cgroup_enable_pressure_irq_some || cgroup_enable_pressure_irq_full) && !cg->irq_pressure.filename)) {
+ snprintfz(filename, FILENAME_MAX, "%s%s/irq.pressure", cgroup_unified_base, cg->id);
+ if (likely(stat(filename, &buf) != -1)) {
+ cg->irq_pressure.filename = strdupz(filename);
+ cg->irq_pressure.some.enabled = cgroup_enable_pressure_irq_some;
+ cg->irq_pressure.full.enabled = cgroup_enable_pressure_irq_full;
+ netdata_log_debug(D_CGROUP, "irq.pressure filename for cgroup '%s': '%s'", cg->id, cg->irq_pressure.filename);
+ } else {
+ netdata_log_debug(D_CGROUP, "irq.pressure file for cgroup '%s': '%s' does not exist", cg->id, filename);
+ }
+ }
}
}
}
@@ -4643,6 +4666,112 @@ void update_cgroup_charts(int update_every) {
update_pressure_charts(pcs);
}
+ res = &cg->irq_pressure;
+
+ if (likely(res->updated && res->some.enabled)) {
+ struct pressure_charts *pcs;
+ pcs = &res->some;
+
+ if (unlikely(!pcs->share_time.st)) {
+ RRDSET *chart;
+ snprintfz(title, CHART_TITLE_MAX, "IRQ some pressure");
+ chart = pcs->share_time.st = rrdset_create_localhost(
+ cgroup_chart_type(type, cg->chart_id, RRD_ID_LENGTH_MAX)
+ , "irq_some_pressure"
+ , NULL
+ , "interrupts"
+ , k8s_is_kubepod(cg) ? "k8s.cgroup.irq_some_pressure" : "cgroup.irq_some_pressure"
+ , title
+ , "percentage"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_CGROUPS_NAME
+ , cgroup_containers_chart_priority + 2310
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+ rrdset_update_rrdlabels(chart = pcs->share_time.st, cg->chart_labels);
+ pcs->share_time.rd10 = rrddim_add(chart, "some 10", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ pcs->share_time.rd60 = rrddim_add(chart, "some 60", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ pcs->share_time.rd300 = rrddim_add(chart, "some 300", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ if (unlikely(!pcs->total_time.st)) {
+ RRDSET *chart;
+ snprintfz(title, CHART_TITLE_MAX, "IRQ some pressure stall time");
+ chart = pcs->total_time.st = rrdset_create_localhost(
+ cgroup_chart_type(type, cg->chart_id, RRD_ID_LENGTH_MAX)
+ , "irq_some_pressure_stall_time"
+ , NULL
+ , "interrupts"
+ , k8s_is_kubepod(cg) ? "k8s.cgroup.irq_some_pressure_stall_time" : "cgroup.irq_some_pressure_stall_time"
+ , title
+ , "ms"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_CGROUPS_NAME
+ , cgroup_containers_chart_priority + 2330
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+ rrdset_update_rrdlabels(chart = pcs->total_time.st, cg->chart_labels);
+ pcs->total_time.rdtotal = rrddim_add(chart, "time", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ }
+
+ update_pressure_charts(pcs);
+ }
+
+ if (likely(res->updated && res->full.enabled)) {
+ struct pressure_charts *pcs;
+ pcs = &res->full;
+
+ if (unlikely(!pcs->share_time.st)) {
+ RRDSET *chart;
+ snprintfz(title, CHART_TITLE_MAX, "IRQ full pressure");
+
+ chart = pcs->share_time.st = rrdset_create_localhost(
+ cgroup_chart_type(type, cg->chart_id, RRD_ID_LENGTH_MAX)
+ , "irq_full_pressure"
+ , NULL
+ , "interrupts"
+ , k8s_is_kubepod(cg) ? "k8s.cgroup.irq_full_pressure" : "cgroup.irq_full_pressure"
+ , title
+ , "percentage"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_CGROUPS_NAME
+ , cgroup_containers_chart_priority + 2350
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdset_update_rrdlabels(chart = pcs->share_time.st, cg->chart_labels);
+ pcs->share_time.rd10 = rrddim_add(chart, "full 10", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ pcs->share_time.rd60 = rrddim_add(chart, "full 60", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ pcs->share_time.rd300 = rrddim_add(chart, "full 300", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ if (unlikely(!pcs->total_time.st)) {
+ RRDSET *chart;
+ snprintfz(title, CHART_TITLE_MAX, "IRQ full pressure stall time");
+ chart = pcs->total_time.st = rrdset_create_localhost(
+ cgroup_chart_type(type, cg->chart_id, RRD_ID_LENGTH_MAX)
+ , "irq_full_pressure_stall_time"
+ , NULL
+ , "interrupts"
+ , k8s_is_kubepod(cg) ? "k8s.cgroup.irq_full_pressure_stall_time" : "cgroup.irq_full_pressure_stall_time"
+ , title
+ , "ms"
+ , PLUGIN_CGROUPS_NAME
+ , PLUGIN_CGROUPS_MODULE_CGROUPS_NAME
+ , cgroup_containers_chart_priority + 2370
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+ rrdset_update_rrdlabels(chart = pcs->total_time.st, cg->chart_labels);
+ pcs->total_time.rdtotal = rrddim_add(chart, "time", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ }
+
+ update_pressure_charts(pcs);
+ }
+
res = &cg->io_pressure;
if (likely(res->updated && res->some.enabled)) {
diff --git a/collectors/charts.d.plugin/ap/metadata.yaml b/collectors/charts.d.plugin/ap/metadata.yaml
index 344b6817e..c4e96a14a 100644
--- a/collectors/charts.d.plugin/ap/metadata.yaml
+++ b/collectors/charts.d.plugin/ap/metadata.yaml
@@ -1,107 +1,143 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: ap
- monitored_instance:
- name: Access Points
- link: ''
- categories:
- - data-collection.networking-stack-and-network-interfaces
- icon_filename: 'netdata.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Maintain surveillance over Access Points, ensuring optimal wireless network connectivity and performance. Monitor and troubleshoot in realtime for high-quality network operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: wireless device
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: ap
+ monitored_instance:
+ name: Access Points
+ link: "https://learn.netdata.cloud/docs/data-collection/networking-stack-and-network-interfaces/linux-access-points"
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ap
+ - access
+ - point
+ - wireless
+ - network
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "The ap collector visualizes data related to wireless access points."
+ method_description: "It uses the `iw` command line utility to detect access points. For each interface that is of `type AP`, it then runs `iw INTERFACE station dump` and collects statistics."
+ supported_platforms:
+ include: [Linux]
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "The plugin is able to auto-detect if you are running access points on your linux box."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "`iw` utility."
+ description: "Make sure the `iw` utility is installed."
+ configuration:
+ file:
+ name: charts.d/ap.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the ap collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: ap_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 1
+ required: false
+ - name: ap_priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 6900
+ required: false
+ - name: ap_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Change the collection frequency
+ description: Specify a custom collection frequence (update_every) for this collector
+ config: |
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ ap_update_every=10
+
+ # the charts priority on the dashboard
+ #ap_priority=6900
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #ap_retries=10
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: ap.clients
- description: Connected clients to ${ssid} on ${dev}
- unit: "clients"
- chart_type: line
- dimensions:
- - name: clients
- - name: ap.net
- description: Bandwidth for ${ssid} on ${dev}
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ap.packets
- description: Packets for ${ssid} on ${dev}
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ap.issues
- description: Transmit Issues for ${ssid} on ${dev}
- unit: "issues/s"
- chart_type: line
- dimensions:
- - name: retries
- - name: failures
- - name: ap.signal
- description: Average Signal for ${ssid} on ${dev}
- unit: "dBm"
- chart_type: line
- dimensions:
- - name: average signal
- - name: ap.bitrate
- description: Bitrate for ${ssid} on ${dev}
- unit: "Mbps"
- chart_type: line
- dimensions:
- - name: receive
- - name: transmit
- - name: expected
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: wireless device
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: ap.clients
+ description: Connected clients to ${ssid} on ${dev}
+ unit: "clients"
+ chart_type: line
+ dimensions:
+ - name: clients
+ - name: ap.net
+ description: Bandwidth for ${ssid} on ${dev}
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ap.packets
+ description: Packets for ${ssid} on ${dev}
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ap.issues
+ description: Transmit Issues for ${ssid} on ${dev}
+ unit: "issues/s"
+ chart_type: line
+ dimensions:
+ - name: retries
+ - name: failures
+ - name: ap.signal
+ description: Average Signal for ${ssid} on ${dev}
+ unit: "dBm"
+ chart_type: line
+ dimensions:
+ - name: average signal
+ - name: ap.bitrate
+ description: Bitrate for ${ssid} on ${dev}
+ unit: "Mbps"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: transmit
+ - name: expected
diff --git a/collectors/charts.d.plugin/ap/metrics.csv b/collectors/charts.d.plugin/ap/metrics.csv
deleted file mode 100644
index 8428cf6db..000000000
--- a/collectors/charts.d.plugin/ap/metrics.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-ap.clients,wireless device,clients,clients,"Connected clients to ${ssid} on ${dev}",line,,charts.d.plugin,ap
-ap.net,wireless device,"received, sent",kilobits/s,"Bandwidth for ${ssid} on ${dev}",area,,charts.d.plugin,ap
-ap.packets,wireless device,"received, sent",packets/s,"Packets for ${ssid} on ${dev}",line,,charts.d.plugin,ap
-ap.issues,wireless device,"retries, failures",issues/s,"Transmit Issues for ${ssid} on ${dev}",line,,charts.d.plugin,ap
-ap.signal,wireless device,"average signal",dBm,"Average Signal for ${ssid} on ${dev}",line,,charts.d.plugin,ap
-ap.bitrate,wireless device,"receive, transmit, expected",Mbps,"Bitrate for ${ssid} on ${dev}",line,,charts.d.plugin,ap
\ No newline at end of file
diff --git a/collectors/charts.d.plugin/apcupsd/metadata.yaml b/collectors/charts.d.plugin/apcupsd/metadata.yaml
index 203f04823..d078074b7 100644
--- a/collectors/charts.d.plugin/apcupsd/metadata.yaml
+++ b/collectors/charts.d.plugin/apcupsd/metadata.yaml
@@ -1,144 +1,198 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: apcupsd
- monitored_instance:
- name: APC UPS
- link: ''
- categories:
- - data-collection.ups
- icon_filename: 'apc.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: apcupsd_ups_charge
- link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
- metric: apcupsd.charge
- info: average UPS charge over the last minute
- os: "*"
-- name: apcupsd_10min_ups_load
- link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
- metric: apcupsd.load
- info: average UPS load over the last 10 minutes
- os: "*"
-- name: apcupsd_last_collected_secs
- link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
- metric: apcupsd.load
- info: number of seconds since the last successful data collection
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: ups
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: apcupsd
+ monitored_instance:
+ name: APC UPS
+ link: "https://www.apc.com"
+ categories:
+ - data-collection.ups
+ icon_filename: "apc.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ups
+ - apc
+ - power
+ - supply
+ - battery
+ - apcupsd
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics."
+ method_description: "The collector uses the `apcaccess` tool to contact the `apcupsd` daemon and get the APC UPS statistics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "By default, with no configuration provided, the collector will try to contact 127.0.0.1:3551 with using the `apcaccess` utility."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Required software"
+ description: "Make sure the `apcaccess` and `apcupsd` are installed and running."
+ configuration:
+ file:
+ name: charts.d/apcupsd.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the apcupsd collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: apcupsd_sources
+ description: This is an array of apcupsd sources. You can have multiple entries there. Please refer to the example below on how to set it.
+ default_value: "127.0.0.1:3551"
+ required: false
+ - name: apcupsd_timeout
+ description: How long to wait for apcupsd to respond.
+ default_value: 3
+ required: false
+ - name: apcupsd_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 1
+ required: false
+ - name: apcupsd_priority
+ description: The charts priority on the dashboard.
+ default_value: 90000
+ required: false
+ - name: apcupsd_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Multiple apcupsd sources
+ description: Specify a multiple apcupsd sources along with a custom update interval
+ config: |
+ # add all your APC UPSes in this array - uncomment it too
+ declare -A apcupsd_sources=(
+ ["local"]="127.0.0.1:3551",
+ ["remote"]="1.2.3.4:3551"
+ )
+
+ # how long to wait for apcupsd to respond
+ #apcupsd_timeout=3
+
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ apcupsd_update_every=5
+
+ # the charts priority on the dashboard
+ #apcupsd_priority=90000
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #apcupsd_retries=10
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: apcupsd_ups_charge
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
+ metric: apcupsd.charge
+ info: average UPS charge over the last minute
+ os: "*"
+ - name: apcupsd_10min_ups_load
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
+ metric: apcupsd.load
+ info: average UPS load over the last 10 minutes
+ os: "*"
+ - name: apcupsd_last_collected_secs
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf
+ metric: apcupsd.load
+ info: number of seconds since the last successful data collection
metrics:
- - name: apcupsd.charge
- description: UPS Charge
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: charge
- - name: apcupsd.battery.voltage
- description: UPS Battery Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: nominal
- - name: apcupsd.input.voltage
- description: UPS Input Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: min
- - name: max
- - name: apcupsd.output.voltage
- description: UPS Output Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: absolute
- - name: nominal
- - name: apcupsd.input.frequency
- description: UPS Input Voltage
- unit: "Hz"
- chart_type: line
- dimensions:
- - name: frequency
- - name: apcupsd.load
- description: UPS Load
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: load
- - name: apcupsd.load_usage
- description: UPS Load Usage
- unit: "Watts"
- chart_type: area
- dimensions:
- - name: load
- - name: apcupsd.temperature
- description: UPS Temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: temp
- - name: apcupsd.time
- description: UPS Time Remaining
- unit: "Minutes"
- chart_type: area
- dimensions:
- - name: time
- - name: apcupsd.online
- description: UPS ONLINE flag
- unit: "boolean"
- chart_type: line
- dimensions:
- - name: online
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: ups
+ description: "Metrics related to UPS. Each UPS provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: apcupsd.charge
+ description: UPS Charge
+ unit: "percentage"
+ chart_type: area
+ dimensions:
+ - name: charge
+ - name: apcupsd.battery.voltage
+ description: UPS Battery Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: nominal
+ - name: apcupsd.input.voltage
+ description: UPS Input Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: min
+ - name: max
+ - name: apcupsd.output.voltage
+ description: UPS Output Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: absolute
+ - name: nominal
+ - name: apcupsd.input.frequency
+ description: UPS Input Voltage
+ unit: "Hz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - name: apcupsd.load
+ description: UPS Load
+ unit: "percentage"
+ chart_type: area
+ dimensions:
+ - name: load
+ - name: apcupsd.load_usage
+ description: UPS Load Usage
+ unit: "Watts"
+ chart_type: area
+ dimensions:
+ - name: load
+ - name: apcupsd.temperature
+ description: UPS Temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: temp
+ - name: apcupsd.time
+ description: UPS Time Remaining
+ unit: "Minutes"
+ chart_type: area
+ dimensions:
+ - name: time
+ - name: apcupsd.online
+ description: UPS ONLINE flag
+ unit: "boolean"
+ chart_type: line
+ dimensions:
+ - name: online
diff --git a/collectors/charts.d.plugin/apcupsd/metrics.csv b/collectors/charts.d.plugin/apcupsd/metrics.csv
deleted file mode 100644
index 828abf1f1..000000000
--- a/collectors/charts.d.plugin/apcupsd/metrics.csv
+++ /dev/null
@@ -1,11 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-apcupsd.charge,ups,charge,percentage,"UPS Charge",area,,charts.d.plugin,apcupsd
-apcupsd.battery.voltage,ups,"voltage, nominal",Volts,"UPS Battery Voltage",line,,charts.d.plugin,apcupsd
-apcupsd.input.voltage,ups,"voltage, min, max",Volts,"UPS Input Voltage",line,,charts.d.plugin,apcupsd
-apcupsd.output.voltage,ups,"absolute, nominal",Volts,"UPS Output Voltage",line,,charts.d.plugin,apcupsd
-apcupsd.input.frequency,ups,frequency,Hz,"UPS Input Voltage",line,,charts.d.plugin,apcupsd
-apcupsd.load,ups,load,percentage,"UPS Load",area,,charts.d.plugin,apcupsd
-apcupsd.load_usage,ups,load,Watts,"UPS Load Usage",area,,charts.d.plugin,apcupsd
-apcupsd.temperature,ups,temp,Celsius,"UPS Temperature",line,,charts.d.plugin,apcupsd
-apcupsd.time,ups,time,Minutes,"UPS Time Remaining",area,,charts.d.plugin,apcupsd
-apcupsd.online,ups,online,boolean,"UPS ONLINE flag",line,,charts.d.plugin,apcupsd
\ No newline at end of file
diff --git a/collectors/charts.d.plugin/libreswan/metadata.yaml b/collectors/charts.d.plugin/libreswan/metadata.yaml
index 480db3636..484d79ede 100644
--- a/collectors/charts.d.plugin/libreswan/metadata.yaml
+++ b/collectors/charts.d.plugin/libreswan/metadata.yaml
@@ -1,79 +1,143 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: libreswan
- monitored_instance:
- name: Libreswan
- link: ''
- categories:
- - data-collection.vpns
- icon_filename: 'libreswan.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Libreswan performance for optimal IPsec VPN operations. Improve your VPN operations with Netdata''s real-time metrics and built-in alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: IPSEC tunnel
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: libreswan
+ monitored_instance:
+ name: Libreswan
+ link: "https://libreswan.org/"
+ categories:
+ - data-collection.vpns
+ icon_filename: "libreswan.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - vpn
+ - libreswan
+ - network
+ - ipsec
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Libreswan performance for optimal IPsec VPN operations. Improve your VPN operations with Netdata''s real-time metrics and built-in alerts."
+ method_description: "The collector uses the `ipsec` command to collect the information it needs."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Permissions to execute `ipsec`"
+ description: |
+ The plugin executes 2 commands to collect all the information it needs:
+
+ ```sh
+ ipsec whack --status
+ ipsec whack --trafficstatus
+ ```
+
+ The first command is used to extract the currently established tunnels, their IDs and their names.
+ The second command is used to extract the current uptime and traffic.
+
+ Most probably user `netdata` will not be able to query libreswan, so the `ipsec` commands will be denied.
+ The plugin attempts to run `ipsec` as `sudo ipsec ...`, to get access to libreswan statistics.
+
+ To allow user `netdata` execute `sudo ipsec ...`, create the file `/etc/sudoers.d/netdata` with this content:
+
+ ```
+ netdata ALL = (root) NOPASSWD: /sbin/ipsec whack --status
+ netdata ALL = (root) NOPASSWD: /sbin/ipsec whack --trafficstatus
+ ```
+
+ Make sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to find the right path).
+ configuration:
+ file:
+ name: charts.d/libreswan.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the libreswan collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: libreswan_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 1
+ required: false
+ - name: libreswan_priority
+ description: The charts priority on the dashboard
+ default_value: 90000
+ required: false
+ - name: libreswan_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ - name: libreswan_sudo
+ description: Whether to run `ipsec` with `sudo` or not.
+ default_value: 1
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Run `ipsec` without sudo
+ description: Run the `ipsec` utility without sudo
+ config: |
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ #libreswan_update_every=1
+
+ # the charts priority on the dashboard
+ #libreswan_priority=90000
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #libreswan_retries=10
+
+ # set to 1, to run ipsec with sudo (the default)
+ # set to 0, to run ipsec without sudo
+ libreswan_sudo=0
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: libreswan.net
- description: LibreSWAN Tunnel ${name} Traffic
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: libreswan.uptime
- description: LibreSWAN Tunnel ${name} Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: IPSEC tunnel
+ description: "Metrics related to IPSEC tunnels. Each tunnel provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: libreswan.net
+ description: LibreSWAN Tunnel ${name} Traffic
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: libreswan.uptime
+ description: LibreSWAN Tunnel ${name} Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
diff --git a/collectors/charts.d.plugin/libreswan/metrics.csv b/collectors/charts.d.plugin/libreswan/metrics.csv
deleted file mode 100644
index e81c43b26..000000000
--- a/collectors/charts.d.plugin/libreswan/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-libreswan.net,IPSEC tunnel,"in, out",kilobits/s,"LibreSWAN Tunnel ${name} Traffic",area,,charts.d.plugin,libreswan
-libreswan.uptime,IPSEC tunnel,uptime,seconds,"LibreSWAN Tunnel ${name} Uptime",line,,charts.d.plugin,libreswan
\ No newline at end of file
diff --git a/collectors/charts.d.plugin/nut/metadata.yaml b/collectors/charts.d.plugin/nut/metadata.yaml
index ce6e57007..ea2e6b2eb 100644
--- a/collectors/charts.d.plugin/nut/metadata.yaml
+++ b/collectors/charts.d.plugin/nut/metadata.yaml
@@ -1,152 +1,219 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: nut
- monitored_instance:
- name: UPS/PDU
- link: ''
- categories:
- - data-collection.ups
- icon_filename: 'plug-circle-bolt.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine UPS/PDU metrics with Netdata for insights into power device performance. Improve your power device performance with comprehensive dashboards and anomaly detection.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: nut_ups_charge
- link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
- metric: nut.charge
- info: average UPS charge over the last minute
- os: "*"
-- name: nut_10min_ups_load
- link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
- metric: nut.load
- info: average UPS load over the last 10 minutes
- os: "*"
-- name: nut_last_collected_secs
- link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
- metric: nut.load
- info: number of seconds since the last successful data collection
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: ups
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: nut
+ monitored_instance:
+ name: Network UPS Tools (NUT)
+ link: ''
+ categories:
+ - data-collection.ups
+ icon_filename: 'plug-circle-bolt.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - nut
+ - network ups tools
+ - ups
+ - pdu
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'Examine UPS/PDU metrics with Netdata for insights into power device performance. Improve your power device performance with comprehensive dashboards and anomaly detection.'
+ method_description: 'This collector uses the `nut` (Network UPS Tools) to query statistics for multiple UPS devices.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: ''
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: "Required software"
+ description: "Make sure the Network UPS Tools (`nut`) is installed and can detect your UPS devices."
+ configuration:
+ file:
+ name: charts.d/nut.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the nut collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: nut_ups
+ description: A space separated list of UPS names. If empty, the list returned by `upsc -l` will be used.
+ default_value: ""
+ required: false
+ - name: nut_names
+ description: Each line represents an alias for one UPS. If empty, the FQDN will be used.
+ default_value: ""
+ required: false
+ - name: nut_timeout
+ description: How long to wait for nut to respond.
+ default_value: 2
+ required: false
+ - name: nut_clients_chart
+ description: Set this to 1 to enable another chart showing the number of UPS clients connected to `upsd`.
+ default_value: 1
+ required: false
+ - name: nut_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 2
+ required: false
+ - name: nut_priority
+ description: The charts priority on the dashboard
+ default_value: 90000
+ required: false
+ - name: nut_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Provide names to UPS devices
+ description: Map aliases to UPS devices
+ config: |
+ # a space separated list of UPS names
+ # if empty, the list returned by 'upsc -l' will be used
+ #nut_ups=
+
+ # each line represents an alias for one UPS
+ # if empty, the FQDN will be used
+ nut_names["XXXXXX"]="UPS-office"
+ nut_names["YYYYYY"]="UPS-rack"
+
+ # how much time in seconds, to wait for nut to respond
+ #nut_timeout=2
+
+ # set this to 1, to enable another chart showing the number
+ # of UPS clients connected to upsd
+ #nut_clients_chart=1
+
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ #nut_update_every=2
+
+ # the charts priority on the dashboard
+ #nut_priority=90000
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #nut_retries=10
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: nut_ups_charge
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
+ metric: nut.charge
+ info: average UPS charge over the last minute
+ os: "*"
+ - name: nut_10min_ups_load
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
+ metric: nut.load
+ info: average UPS load over the last 10 minutes
+ os: "*"
+ - name: nut_last_collected_secs
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf
+ metric: nut.load
+ info: number of seconds since the last successful data collection
metrics:
- - name: nut.charge
- description: UPS Charge
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: charge
- - name: nut.runtime
- description: UPS Runtime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: runtime
- - name: nut.battery.voltage
- description: UPS Battery Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: high
- - name: low
- - name: nominal
- - name: nut.input.voltage
- description: UPS Input Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: fault
- - name: nominal
- - name: nut.input.current
- description: UPS Input Current
- unit: "Ampere"
- chart_type: line
- dimensions:
- - name: nominal
- - name: nut.input.frequency
- description: UPS Input Frequency
- unit: "Hz"
- chart_type: line
- dimensions:
- - name: frequency
- - name: nominal
- - name: nut.output.voltage
- description: UPS Output Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: nut.load
- description: UPS Load
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: load
- - name: nut.load_usage
- description: UPS Load Usage
- unit: "Watts"
- chart_type: area
- dimensions:
- - name: load_usage
- - name: nut.temperature
- description: UPS Temperature
- unit: "temperature"
- chart_type: line
- dimensions:
- - name: temp
- - name: nut.clients
- description: UPS Connected Clients
- unit: "clients"
- chart_type: area
- dimensions:
- - name: clients
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: ups
+ description: "Metrics related to UPS. Each UPS provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: nut.charge
+ description: UPS Charge
+ unit: "percentage"
+ chart_type: area
+ dimensions:
+ - name: charge
+ - name: nut.runtime
+ description: UPS Runtime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: runtime
+ - name: nut.battery.voltage
+ description: UPS Battery Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: high
+ - name: low
+ - name: nominal
+ - name: nut.input.voltage
+ description: UPS Input Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: fault
+ - name: nominal
+ - name: nut.input.current
+ description: UPS Input Current
+ unit: "Ampere"
+ chart_type: line
+ dimensions:
+ - name: nominal
+ - name: nut.input.frequency
+ description: UPS Input Frequency
+ unit: "Hz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - name: nominal
+ - name: nut.output.voltage
+ description: UPS Output Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: nut.load
+ description: UPS Load
+ unit: "percentage"
+ chart_type: area
+ dimensions:
+ - name: load
+ - name: nut.load_usage
+ description: UPS Load Usage
+ unit: "Watts"
+ chart_type: area
+ dimensions:
+ - name: load_usage
+ - name: nut.temperature
+ description: UPS Temperature
+ unit: "temperature"
+ chart_type: line
+ dimensions:
+ - name: temp
+ - name: nut.clients
+ description: UPS Connected Clients
+ unit: "clients"
+ chart_type: area
+ dimensions:
+ - name: clients
diff --git a/collectors/charts.d.plugin/nut/metrics.csv b/collectors/charts.d.plugin/nut/metrics.csv
deleted file mode 100644
index 2abd57251..000000000
--- a/collectors/charts.d.plugin/nut/metrics.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-nut.charge,ups,charge,percentage,"UPS Charge",area,,charts.d.plugin,nut
-nut.runtime,ups,runtime,seconds,"UPS Runtime",line,,charts.d.plugin,nut
-nut.battery.voltage,ups,"voltage, high, low, nominal",Volts,"UPS Battery Voltage",line,,charts.d.plugin,nut
-nut.input.voltage,ups,"voltage, fault, nominal",Volts,"UPS Input Voltage",line,,charts.d.plugin,nut
-nut.input.current,ups,nominal,Ampere,"UPS Input Current",line,,charts.d.plugin,nut
-nut.input.frequency,ups,"frequency, nominal",Hz,"UPS Input Frequency",line,,charts.d.plugin,nut
-nut.output.voltage,ups,voltage,Volts,"UPS Output Voltage",line,,charts.d.plugin,nut
-nut.load,ups,load,percentage,"UPS Load",area,,charts.d.plugin,nut
-nut.load_usage,ups,load_usage,Watts,"UPS Load Usage",area,,charts.d.plugin,nut
-nut.temperature,ups,temp,temperature,"UPS Temperature",line,,charts.d.plugin,nut
-nut.clients,ups,clients,clients,"UPS Connected Clients",area,,charts.d.plugin,nut
\ No newline at end of file
diff --git a/collectors/charts.d.plugin/opensips/metadata.yaml b/collectors/charts.d.plugin/opensips/metadata.yaml
index 90a2ebe7b..27f663286 100644
--- a/collectors/charts.d.plugin/opensips/metadata.yaml
+++ b/collectors/charts.d.plugin/opensips/metadata.yaml
@@ -1,215 +1,267 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: opensips
- monitored_instance:
- name: OpenSIPS
- link: ''
- categories:
- - data-collection.telephony-servers
- icon_filename: 'opensips.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine OpenSIPS metrics for insights into SIP server operations. Study call rates, error rates, and response times for reliable voice over IP services.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: opensips
+ monitored_instance:
+ name: OpenSIPS
+ link: "https://opensips.org/"
+ categories:
+ - data-collection.telephony-servers
+ icon_filename: "opensips.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - opensips
+ - sip
+ - voice
+ - video
+ - stream
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Examine OpenSIPS metrics for insights into SIP server operations. Study call rates, error rates, and response times for reliable voice over IP services."
+ method_description: "The collector uses the `opensipsctl` command line utility to gather OpenSIPS metrics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "The collector will attempt to call `opensipsctl` along with a default number of parameters, even without any configuration."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Required software"
+ description: "The collector requires the `opensipsctl` to be installed."
+ configuration:
+ file:
+ name: charts.d/opensips.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the opensips collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: opensips_opts
+ description: Specify parameters to the `opensipsctl` command. If the default value fails to get global status, set here whatever options are needed to connect to the opensips server.
+ default_value: "fifo get_statistics all"
+ required: false
+ - name: opensips_cmd
+ description: If `opensipsctl` is not in $PATH, specify it's full path here.
+ default_value: ""
+ required: false
+ - name: opensips_timeout
+ description: How long to wait for `opensipsctl` to respond.
+ default_value: 2
+ required: false
+ - name: opensips_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 5
+ required: false
+ - name: opensips_priority
+ description: The charts priority on the dashboard.
+ default_value: 80000
+ required: false
+ - name: opensips_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Custom `opensipsctl` command
+ description: Set a custom path to the `opensipsctl` command
+ config: |
+ #opensips_opts="fifo get_statistics all"
+ opensips_cmd=/opt/opensips/bin/opensipsctl
+ #opensips_timeout=2
+
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ #opensips_update_every=5
+
+ # the charts priority on the dashboard
+ #opensips_priority=80000
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #opensips_retries=10
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: opensips.dialogs_active
- description: OpenSIPS Active Dialogs
- unit: "dialogs"
- chart_type: area
- dimensions:
- - name: active
- - name: early
- - name: opensips.users
- description: OpenSIPS Users
- unit: "users"
- chart_type: line
- dimensions:
- - name: registered
- - name: location
- - name: contacts
- - name: expires
- - name: opensips.registrar
- description: OpenSIPS Registrar
- unit: "registrations/s"
- chart_type: line
- dimensions:
- - name: accepted
- - name: rejected
- - name: opensips.transactions
- description: OpenSIPS Transactions
- unit: "transactions/s"
- chart_type: line
- dimensions:
- - name: UAS
- - name: UAC
- - name: opensips.core_rcv
- description: OpenSIPS Core Receives
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: replies
- - name: opensips.core_fwd
- description: OpenSIPS Core Forwards
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: replies
- - name: opensips.core_drop
- description: OpenSIPS Core Drops
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: replies
- - name: opensips.core_err
- description: OpenSIPS Core Errors
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: replies
- - name: opensips.core_bad
- description: OpenSIPS Core Bad
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: bad_URIs_rcvd
- - name: unsupported_methods
- - name: bad_msg_hdr
- - name: opensips.tm_replies
- description: OpenSIPS TM Replies
- unit: "replies/s"
- chart_type: line
- dimensions:
- - name: received
- - name: relayed
- - name: local
- - name: opensips.transactions_status
- description: OpenSIPS Transactions Status
- unit: "transactions/s"
- chart_type: line
- dimensions:
- - name: 2xx
- - name: 3xx
- - name: 4xx
- - name: 5xx
- - name: 6xx
- - name: opensips.transactions_inuse
- description: OpenSIPS InUse Transactions
- unit: "transactions"
- chart_type: line
- dimensions:
- - name: inuse
- - name: opensips.sl_replies
- description: OpenSIPS SL Replies
- unit: "replies/s"
- chart_type: line
- dimensions:
- - name: 1xx
- - name: 2xx
- - name: 3xx
- - name: 4xx
- - name: 5xx
- - name: 6xx
- - name: sent
- - name: error
- - name: ACKed
- - name: opensips.dialogs
- description: OpenSIPS Dialogs
- unit: "dialogs/s"
- chart_type: line
- dimensions:
- - name: processed
- - name: expire
- - name: failed
- - name: opensips.net_waiting
- description: OpenSIPS Network Waiting
- unit: "kilobytes"
- chart_type: line
- dimensions:
- - name: UDP
- - name: TCP
- - name: opensips.uri_checks
- description: OpenSIPS URI Checks
- unit: "checks / sec"
- chart_type: line
- dimensions:
- - name: positive
- - name: negative
- - name: opensips.traces
- description: OpenSIPS Traces
- unit: "traces / sec"
- chart_type: line
- dimensions:
- - name: requests
- - name: replies
- - name: opensips.shmem
- description: OpenSIPS Shared Memory
- unit: "kilobytes"
- chart_type: line
- dimensions:
- - name: total
- - name: used
- - name: real_used
- - name: max_used
- - name: free
- - name: opensips.shmem_fragment
- description: OpenSIPS Shared Memory Fragmentation
- unit: "fragments"
- chart_type: line
- dimensions:
- - name: fragments
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: opensips.dialogs_active
+ description: OpenSIPS Active Dialogs
+ unit: "dialogs"
+ chart_type: area
+ dimensions:
+ - name: active
+ - name: early
+ - name: opensips.users
+ description: OpenSIPS Users
+ unit: "users"
+ chart_type: line
+ dimensions:
+ - name: registered
+ - name: location
+ - name: contacts
+ - name: expires
+ - name: opensips.registrar
+ description: OpenSIPS Registrar
+ unit: "registrations/s"
+ chart_type: line
+ dimensions:
+ - name: accepted
+ - name: rejected
+ - name: opensips.transactions
+ description: OpenSIPS Transactions
+ unit: "transactions/s"
+ chart_type: line
+ dimensions:
+ - name: UAS
+ - name: UAC
+ - name: opensips.core_rcv
+ description: OpenSIPS Core Receives
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: replies
+ - name: opensips.core_fwd
+ description: OpenSIPS Core Forwards
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: replies
+ - name: opensips.core_drop
+ description: OpenSIPS Core Drops
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: replies
+ - name: opensips.core_err
+ description: OpenSIPS Core Errors
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: replies
+ - name: opensips.core_bad
+ description: OpenSIPS Core Bad
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: bad_URIs_rcvd
+ - name: unsupported_methods
+ - name: bad_msg_hdr
+ - name: opensips.tm_replies
+ description: OpenSIPS TM Replies
+ unit: "replies/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: relayed
+ - name: local
+ - name: opensips.transactions_status
+ description: OpenSIPS Transactions Status
+ unit: "transactions/s"
+ chart_type: line
+ dimensions:
+ - name: 2xx
+ - name: 3xx
+ - name: 4xx
+ - name: 5xx
+ - name: 6xx
+ - name: opensips.transactions_inuse
+ description: OpenSIPS InUse Transactions
+ unit: "transactions"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: opensips.sl_replies
+ description: OpenSIPS SL Replies
+ unit: "replies/s"
+ chart_type: line
+ dimensions:
+ - name: 1xx
+ - name: 2xx
+ - name: 3xx
+ - name: 4xx
+ - name: 5xx
+ - name: 6xx
+ - name: sent
+ - name: error
+ - name: ACKed
+ - name: opensips.dialogs
+ description: OpenSIPS Dialogs
+ unit: "dialogs/s"
+ chart_type: line
+ dimensions:
+ - name: processed
+ - name: expire
+ - name: failed
+ - name: opensips.net_waiting
+ description: OpenSIPS Network Waiting
+ unit: "kilobytes"
+ chart_type: line
+ dimensions:
+ - name: UDP
+ - name: TCP
+ - name: opensips.uri_checks
+ description: OpenSIPS URI Checks
+ unit: "checks / sec"
+ chart_type: line
+ dimensions:
+ - name: positive
+ - name: negative
+ - name: opensips.traces
+ description: OpenSIPS Traces
+ unit: "traces / sec"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: replies
+ - name: opensips.shmem
+ description: OpenSIPS Shared Memory
+ unit: "kilobytes"
+ chart_type: line
+ dimensions:
+ - name: total
+ - name: used
+ - name: real_used
+ - name: max_used
+ - name: free
+ - name: opensips.shmem_fragment
+ description: OpenSIPS Shared Memory Fragmentation
+ unit: "fragments"
+ chart_type: line
+ dimensions:
+ - name: fragments
diff --git a/collectors/charts.d.plugin/opensips/metrics.csv b/collectors/charts.d.plugin/opensips/metrics.csv
deleted file mode 100644
index 2efab3706..000000000
--- a/collectors/charts.d.plugin/opensips/metrics.csv
+++ /dev/null
@@ -1,20 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-opensips.dialogs_active,,"active, early",dialogs,"OpenSIPS Active Dialogs",area,,charts.d.plugin,opensips
-opensips.users,,"registered, location, contacts, expires",users,"OpenSIPS Users",line,,charts.d.plugin,opensips
-opensips.registrar,,"accepted, rejected",registrations/s,"OpenSIPS Registrar",line,,charts.d.plugin,opensips
-opensips.transactions,,"UAS, UAC",transactions/s,"OpenSIPS Transactions",line,,charts.d.plugin,opensips
-opensips.core_rcv,,"requests, replies",queries/s,"OpenSIPS Core Receives",line,,charts.d.plugin,opensips
-opensips.core_fwd,,"requests, replies",queries/s,"OpenSIPS Core Forwards",line,,charts.d.plugin,opensips
-opensips.core_drop,,"requests, replies",queries/s,"OpenSIPS Core Drops",line,,charts.d.plugin,opensips
-opensips.core_err,,"requests, replies",queries/s,"OpenSIPS Core Errors",line,,charts.d.plugin,opensips
-opensips.core_bad,,"bad_URIs_rcvd, unsupported_methods, bad_msg_hdr",queries/s,"OpenSIPS Core Bad",line,,charts.d.plugin,opensips
-opensips.tm_replies,,"received, relayed, local",replies/s,"OpenSIPS TM Replies",line,,charts.d.plugin,opensips
-opensips.transactions_status,,"2xx, 3xx, 4xx, 5xx, 6xx",transactions/s,"OpenSIPS Transactions Status",line,,charts.d.plugin,opensips
-opensips.transactions_inuse,,inuse,transactions,"OpenSIPS InUse Transactions",line,,charts.d.plugin,opensips
-opensips.sl_replies,,"1xx, 2xx, 3xx, 4xx, 5xx, 6xx, sent, error, ACKed",replies/s,OpenSIPS SL Replies,line,,charts.d.plugin,opensips
-opensips.dialogs,,"processed, expire, failed",dialogs/s,"OpenSIPS Dialogs",line,,charts.d.plugin,opensips
-opensips.net_waiting,,"UDP, TCP",kilobytes,"OpenSIPS Network Waiting",line,,charts.d.plugin,opensips
-opensips.uri_checks,,"positive, negative","checks / sec","OpenSIPS URI Checks",line,,charts.d.plugin,opensips
-opensips.traces,,"requests, replies","traces / sec","OpenSIPS Traces",line,,charts.d.plugin,opensips
-opensips.shmem,,"total, used, real_used, max_used, free",kilobytes,"OpenSIPS Shared Memory",line,,charts.d.plugin,opensips
-opensips.shmem_fragment,,fragments,fragments,"OpenSIPS Shared Memory Fragmentation",line,,charts.d.plugin,opensips
\ No newline at end of file
diff --git a/collectors/charts.d.plugin/sensors/metadata.yaml b/collectors/charts.d.plugin/sensors/metadata.yaml
index e56b97e66..33beaad29 100644
--- a/collectors/charts.d.plugin/sensors/metadata.yaml
+++ b/collectors/charts.d.plugin/sensors/metadata.yaml
@@ -1,107 +1,169 @@
-meta:
- plugin_name: charts.d.plugin
- module_name: sensors
- monitored_instance:
- name: charts.d sensors
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: sensor chip
- description: ""
- labels: []
+plugin_name: charts.d.plugin
+modules:
+ - meta:
+ plugin_name: charts.d.plugin
+ module_name: sensors
+ monitored_instance:
+ name: Linux Sensors (sysfs)
+ link: "https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - sensors
+ - sysfs
+ - hwmon
+ - rpi
+ - raspberry pi
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Use this collector when `lm-sensors` doesn't work on your device (e.g. for RPi temperatures).
+ For all other cases use the [Python collector](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/sensors), which supports multiple jobs, is more efficient and performs calculations on top of the kernel provided values."
+ method_description: |
+ It will provide charts for all configured system sensors, by reading sensors directly from the kernel.
+ The values graphed are the raw hardware values of the sensors.
+ supported_platforms:
+ include: [Linux]
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "By default, the collector will try to read entries under `/sys/devices`"
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: charts.d/sensors.conf
+ options:
+ description: |
+ The config file is sourced by the charts.d plugin. It's a standard bash file.
+
+ The following collapsed table contains all the options that can be configured for the sensors collector.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: sensors_sys_dir
+ description: The directory the kernel exposes sensor data.
+ default_value: "/sys/devices"
+ required: false
+ - name: sensors_sys_depth
+ description: How deep in the tree to check for sensor data.
+ default_value: 10
+ required: false
+ - name: sensors_source_update
+ description: If set to 1, the script will overwrite internal script functions with code generated ones.
+ default_value: 1
+ required: false
+ - name: sensors_update_every
+ description: The data collection frequency. If unset, will inherit the netdata update frequency.
+ default_value: 1
+ required: false
+ - name: sensors_priority
+ description: The charts priority on the dashboard.
+ default_value: 90000
+ required: false
+ - name: sensors_retries
+ description: The number of retries to do in case of failure before disabling the collector.
+ default_value: 10
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Set sensors path depth
+ description: Set a different sensors path depth
+ config: |
+ # the directory the kernel keeps sensor data
+ #sensors_sys_dir="/sys/devices"
+
+ # how deep in the tree to check for sensor data
+ sensors_sys_depth=5
+
+ # if set to 1, the script will overwrite internal
+ # script functions with code generated ones
+ # leave to 1, is faster
+ #sensors_source_update=1
+
+ # the data collection frequency
+ # if unset, will inherit the netdata update frequency
+ #sensors_update_every=
+
+ # the charts priority on the dashboard
+ #sensors_priority=90000
+
+ # the number of retries to do in case of failure
+ # before disabling the module
+ #sensors_retries=10
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: sensors.temp
- description: Temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: '{filename}'
- - name: sensors.volt
- description: Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: '{filename}'
- - name: sensors.curr
- description: Current
- unit: "Ampere"
- chart_type: line
- dimensions:
- - name: '{filename}'
- - name: sensors.power
- description: Power
- unit: "Watt"
- chart_type: line
- dimensions:
- - name: '{filename}'
- - name: sensors.fans
- description: Fans Speed
- unit: "Rotations / Minute"
- chart_type: line
- dimensions:
- - name: '{filename}'
- - name: sensors.energy
- description: Energy
- unit: "Joule"
- chart_type: area
- dimensions:
- - name: '{filename}'
- - name: sensors.humidity
- description: Humidity
- unit: "Percent"
- chart_type: line
- dimensions:
- - name: '{filename}'
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: sensor chip
+ description: "Metrics related to sensor chips. Each chip provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: sensors.temp
+ description: Temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.volt
+ description: Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.curr
+ description: Current
+ unit: "Ampere"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.power
+ description: Power
+ unit: "Watt"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.fans
+ description: Fans Speed
+ unit: "Rotations / Minute"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.energy
+ description: Energy
+ unit: "Joule"
+ chart_type: area
+ dimensions:
+ - name: "{filename}"
+ - name: sensors.humidity
+ description: Humidity
+ unit: "Percent"
+ chart_type: line
+ dimensions:
+ - name: "{filename}"
diff --git a/collectors/charts.d.plugin/sensors/metrics.csv b/collectors/charts.d.plugin/sensors/metrics.csv
deleted file mode 100644
index 5b5a4c57a..000000000
--- a/collectors/charts.d.plugin/sensors/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-sensors.temp,sensor chip,"{filename}",Celsius,"Temperature",line,,charts.d.plugin,sensors
-sensors.volt,sensor chip,"{filename}",Volts,"Voltage",line,,charts.d.plugin,sensors
-sensors.curr,sensor chip,"{filename}",Ampere,"Current",line,,charts.d.plugin,sensors
-sensors.power,sensor chip,"{filename}",Watt,"Power",line,,charts.d.plugin,sensors
-sensors.fans,sensor chip,"{filename}","Rotations / Minute","Fans Speed",line,,charts.d.plugin,sensors
-sensors.energy,sensor chip,"{filename}",Joule,"Energy",area,,charts.d.plugin,sensors
-sensors.humidity,sensor chip,"{filename}",Percent,"Humidity",line,,charts.d.plugin,sensors
\ No newline at end of file
diff --git a/collectors/cups.plugin/metadata.yaml b/collectors/cups.plugin/metadata.yaml
index c8a7e0834..a416d392e 100644
--- a/collectors/cups.plugin/metadata.yaml
+++ b/collectors/cups.plugin/metadata.yaml
@@ -1,118 +1,131 @@
-meta:
- plugin_name: cups.plugin
- module_name: cups.plugin
- monitored_instance:
- name: CUPS
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: 'cups.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor CUPS performance for achieving optimal printing system operations. Monitor job statuses, queue lengths, and error rates to ensure smooth printing tasks.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: cups.plugin
+modules:
+ - meta:
+ plugin_name: cups.plugin
+ module_name: cups.plugin
+ monitored_instance:
+ name: CUPS
+ link: "https://www.cups.org/"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "cups.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor CUPS performance for achieving optimal printing system operations. Monitor job statuses, queue lengths, and error rates to ensure smooth printing tasks."
+ method_description: "The plugin uses CUPS shared library to connect and monitor the server."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs to access the server. Netdata sets permissions during installation time to reach the server through its library."
+ default_behavior:
+ auto_detection:
+ description: "The plugin detects when CUPS server is running and tries to connect to it."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Minimum setup
+ description: "The CUPS server must be installed and running."
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:cups]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Additional parameters for the collector
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: cups.dests_state
- description: Destinations by state
- unit: "dests"
- chart_type: stacked
- dimensions:
- - name: idle
- - name: printing
- - name: stopped
- - name: cups.dests_option
- description: Destinations by option
- unit: "dests"
- chart_type: line
- dimensions:
- - name: total
- - name: acceptingjobs
- - name: shared
- - name: cups.job_num
- description: Active jobs
- unit: "jobs"
- chart_type: stacked
- dimensions:
- - name: pending
- - name: held
- - name: processing
- - name: cups.job_size
- description: Active jobs size
- unit: "KB"
- chart_type: stacked
- dimensions:
- - name: pending
- - name: held
- - name: processing
- - name: destination
- description: ""
- labels: []
- metrics:
- - name: cups.destination_job_num
- description: Active jobs of {destination}
- unit: "jobs"
- chart_type: stacked
- dimensions:
- - name: pending
- - name: held
- - name: processing
- - name: cups.destination_job_size
- description: Active jobs size of {destination}
- unit: "KB"
- chart_type: stacked
- dimensions:
- - name: pending
- - name: held
- - name: processing
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: cups.dests_state
+ description: Destinations by state
+ unit: "dests"
+ chart_type: stacked
+ dimensions:
+ - name: idle
+ - name: printing
+ - name: stopped
+ - name: cups.dests_option
+ description: Destinations by option
+ unit: "dests"
+ chart_type: line
+ dimensions:
+ - name: total
+ - name: acceptingjobs
+ - name: shared
+ - name: cups.job_num
+ description: Active jobs
+ unit: "jobs"
+ chart_type: stacked
+ dimensions:
+ - name: pending
+ - name: held
+ - name: processing
+ - name: cups.job_size
+ description: Active jobs size
+ unit: "KB"
+ chart_type: stacked
+ dimensions:
+ - name: pending
+ - name: held
+ - name: processing
+ - name: destination
+ description: ""
+ labels: []
+ metrics:
+ - name: cups.destination_job_num
+ description: Active jobs of {destination}
+ unit: "jobs"
+ chart_type: stacked
+ dimensions:
+ - name: pending
+ - name: held
+ - name: processing
+ - name: cups.destination_job_size
+ description: Active jobs size of {destination}
+ unit: "KB"
+ chart_type: stacked
+ dimensions:
+ - name: pending
+ - name: held
+ - name: processing
diff --git a/collectors/cups.plugin/metrics.csv b/collectors/cups.plugin/metrics.csv
deleted file mode 100644
index 0262f58a4..000000000
--- a/collectors/cups.plugin/metrics.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-cups.dests_state,,"idle, printing, stopped",dests,"Destinations by state",stacked,,cups.plugin,
-cups.dests_option,,"total, acceptingjobs, shared",dests,"Destinations by option",line,,cups.plugin,
-cups.job_num,,"pending, held, processing",jobs,"Active jobs",stacked,,cups.plugin,
-cups.job_size,,"pending, held, processing",KB,"Active jobs size",stacked,,cups.plugin,
-cups.destination_job_num,destination,"pending, held, processing",jobs,"Active jobs of {destination}",stacked,,cups.plugin,
-cups.destination_job_size,destination,"pending, held, processing",KB,"Active jobs size of {destination}",stacked,,cups.plugin,
\ No newline at end of file
diff --git a/collectors/debugfs.plugin/debugfs_plugin.c b/collectors/debugfs.plugin/debugfs_plugin.c
index 1c5bf106e..c189f908d 100644
--- a/collectors/debugfs.plugin/debugfs_plugin.c
+++ b/collectors/debugfs.plugin/debugfs_plugin.c
@@ -20,6 +20,9 @@ static struct debugfs_module {
.func = do_debugfs_extfrag},
{ .name = "/sys/kernel/debug/zswap", .enabled = CONFIG_BOOLEAN_YES,
.func = do_debugfs_zswap},
+ // Linux powercap metrics is here because it needs privilege to read each RAPL zone
+ { .name = "/sys/devices/virtual/powercap", .enabled = CONFIG_BOOLEAN_YES,
+ .func = do_sys_devices_virtual_powercap},
// The terminator
{ .name = NULL, .enabled = CONFIG_BOOLEAN_NO, .func = NULL}
diff --git a/collectors/debugfs.plugin/debugfs_plugin.h b/collectors/debugfs.plugin/debugfs_plugin.h
index c53187d6e..903e4a19e 100644
--- a/collectors/debugfs.plugin/debugfs_plugin.h
+++ b/collectors/debugfs.plugin/debugfs_plugin.h
@@ -9,6 +9,7 @@
int do_debugfs_extfrag(int update_every, const char *name);
int do_debugfs_zswap(int update_every, const char *name);
+int do_sys_devices_virtual_powercap(int update_every, const char *name);
void debugfs2lower(char *name);
const char *debugfs_rrdset_type_name(RRDSET_TYPE chart_type);
const char *debugfs_rrd_algorithm_name(RRD_ALGORITHM algorithm);
diff --git a/collectors/debugfs.plugin/debugfs_zswap.c b/collectors/debugfs.plugin/debugfs_zswap.c
index c8fc0f030..502a04f1f 100644
--- a/collectors/debugfs.plugin/debugfs_zswap.c
+++ b/collectors/debugfs.plugin/debugfs_zswap.c
@@ -38,7 +38,7 @@ static struct netdata_zswap_metric zswap_calculated_metrics[] = {
.charttype = RRDSET_TYPE_LINE,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_COMPRESS_RATIO,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_COMPRESS_RATIO,
.divisor = 100,
.convertv = NULL,
.value = -1},
@@ -71,7 +71,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_AREA,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_POOL_TOT_SIZE,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_POOL_TOT_SIZE,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -84,7 +84,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_AREA,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_STORED_PAGE,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_STORED_PAGE,
.divisor = 1,
.convertv = pages_to_bytes,
.value = -1},
@@ -97,7 +97,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_LINE,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_POOL_LIM_HIT,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_POOL_LIM_HIT,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -110,7 +110,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_AREA,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_WRT_BACK_PAGES,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_WRT_BACK_PAGES,
.divisor = 1,
.convertv = pages_to_bytes,
.value = -1},
@@ -123,7 +123,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_AREA,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_SAME_FILL_PAGE,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_SAME_FILL_PAGE,
.divisor = 1,
.convertv = pages_to_bytes,
.value = -1},
@@ -136,7 +136,7 @@ static struct netdata_zswap_metric zswap_independent_metrics[] = {
.charttype = RRDSET_TYPE_LINE,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_DUPP_ENTRY,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_DUPP_ENTRY,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -175,7 +175,7 @@ static struct netdata_zswap_metric zswap_rejected_metrics[] = {
.charttype = RRDSET_TYPE_STACKED,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -188,7 +188,7 @@ static struct netdata_zswap_metric zswap_rejected_metrics[] = {
.charttype = RRDSET_TYPE_STACKED,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -201,7 +201,7 @@ static struct netdata_zswap_metric zswap_rejected_metrics[] = {
.charttype = RRDSET_TYPE_STACKED,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -214,7 +214,7 @@ static struct netdata_zswap_metric zswap_rejected_metrics[] = {
.charttype = RRDSET_TYPE_STACKED,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -227,7 +227,7 @@ static struct netdata_zswap_metric zswap_rejected_metrics[] = {
.charttype = RRDSET_TYPE_STACKED,
.enabled = CONFIG_BOOLEAN_YES,
.chart_created = CONFIG_BOOLEAN_NO,
- .prio = NETDATA_CHART_PRIO_SYSTEM_ZSWAP_REJECTS,
+ .prio = NETDATA_CHART_PRIO_MEM_ZSWAP_REJECTS,
.divisor = 1,
.convertv = NULL,
.value = -1},
@@ -266,7 +266,7 @@ zswap_send_chart(struct netdata_zswap_metric *metric, int update_every, const ch
{
fprintf(
stdout,
- "CHART system.zswap_%s '' '%s' '%s' 'zswap' '' '%s' %d %d '%s' 'debugfs.plugin' '%s'\n",
+ "CHART mem.zswap_%s '' '%s' '%s' 'zswap' '' '%s' %d %d '%s' 'debugfs.plugin' '%s'\n",
metric->chart_id,
metric->title,
metric->units,
@@ -291,7 +291,7 @@ static void zswap_send_dimension(struct netdata_zswap_metric *metric)
static void zswap_send_begin(struct netdata_zswap_metric *metric)
{
- fprintf(stdout, "BEGIN system.zswap_%s\n", metric->chart_id);
+ fprintf(stdout, "BEGIN mem.zswap_%s\n", metric->chart_id);
}
static void zswap_send_set(struct netdata_zswap_metric *metric)
diff --git a/collectors/debugfs.plugin/metadata.yaml b/collectors/debugfs.plugin/metadata.yaml
new file mode 100644
index 000000000..d3bf0a0d8
--- /dev/null
+++ b/collectors/debugfs.plugin/metadata.yaml
@@ -0,0 +1,395 @@
+plugin_name: debugfs.plugin
+modules:
+ - meta:
+ plugin_name: debugfs.plugin
+ module_name: /sys/kernel/debug/extfrag
+ monitored_instance:
+ name: System Memory Fragmentation
+ link: 'https://www.kernel.org/doc/html/next/admin-guide/sysctl/vm.html'
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: 'microchip.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - extfrag
+ - extfrag_threshold
+ - memory fragmentation
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'Collects memory fragmentation statistics from the Linux kernel'
+ method_description: 'Parse data from `debugfs` file'
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: >
+ This integration requires read access to files under `/sys/kernel/debug/extfrag`, which are accessible
+ only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to
+ debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing
+ file read permission checks and directory read and execute permission checks. If file capabilities are not
+ usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.
+ default_behavior:
+ auto_detection:
+ description: >
+ Assuming that debugfs is mounted and the required permissions are available, this integration will
+ automatically run by default.
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'filesystem'
+ description: >
+ The debugfs filesystem must be mounted on your host for plugin to collect data.
+ You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally.
+ It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem
+ before starting netdata.
+ configuration:
+ file:
+ name: 'netdata.conf'
+ section_name: '[plugin:debugfs]'
+ description: 'This is netdata main configuration file.'
+ options:
+ description: ''
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Additinal parameters for collector
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: "Monitor the overall memory fragmentation of the system."
+ availability: []
+ scopes:
+ - name: node
+ description: "Memory fragmentation statistics for each NUMA node in the system."
+ labels:
+ - name: numa_node
+ description: The NUMA node the metrics are associated with.
+ metrics:
+ - name: mem.fragmentation_index_dma
+ description: Memory fragmentation index for each order
+ unit: "index"
+ chart_type: line
+ dimensions:
+ - name: order0
+ - name: order1
+ - name: order2
+ - name: order3
+ - name: order4
+ - name: order5
+ - name: order6
+ - name: order7
+ - name: order8
+ - name: order9
+ - name: order10
+ - name: mem.fragmentation_index_dma32
+ description: Memory fragmentation index for each order
+ unit: "index"
+ chart_type: line
+ dimensions:
+ - name: order0
+ - name: order1
+ - name: order2
+ - name: order3
+ - name: order4
+ - name: order5
+ - name: order6
+ - name: order7
+ - name: order8
+ - name: order9
+ - name: order10
+ - name: mem.fragmentation_index_normal
+ description: Memory fragmentation index for each order
+ unit: "index"
+ chart_type: line
+ dimensions:
+ - name: order0
+ - name: order1
+ - name: order2
+ - name: order3
+ - name: order4
+ - name: order5
+ - name: order6
+ - name: order7
+ - name: order8
+ - name: order9
+ - name: order10
+ - meta:
+ plugin_name: debugfs.plugin
+ module_name: /sys/kernel/debug/zswap
+ monitored_instance:
+ name: Linux ZSwap
+ link: 'https://www.kernel.org/doc/html/latest/admin-guide/mm/zswap.html'
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: 'microchip.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - swap
+ - zswap
+ - frontswap
+ - swap cache
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: >
+ Collects zswap performance metrics on Linux systems.
+ method_description: 'Parse data from `debugfs file.'
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: >
+ This integration requires read access to files under `/sys/kernel/debug/zswap`, which are accessible
+ only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to
+ debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing
+ file read permission checks and directory read and execute permission checks. If file capabilities are not
+ usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.
+ default_behavior:
+ auto_detection:
+ description: >
+ Assuming that debugfs is mounted and the required permissions are available, this integration will
+ automatically detect whether or not the system is using zswap.
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'filesystem'
+ description: >
+ The debugfs filesystem must be mounted on your host for plugin to collect data.
+ You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally.
+ It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem
+ before starting netdata.
+ configuration:
+ file:
+ name: 'netdata.conf'
+ section_name: '[plugin:debugfs]'
+ description: 'This is netdata main configuration file.'
+ options:
+ description: ''
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Additinal parameters for collector
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: "Monitor the performance statistics of zswap."
+ availability: []
+ scopes:
+ - name: global
+ description: "Global zswap performance metrics."
+ labels: []
+ metrics:
+ - name: system.zswap_pool_compression_ratio
+ description: Zswap compression ratio
+ unit: "ratio"
+ chart_type: line
+ dimensions:
+ - name: compression_ratio
+ - name: system.zswap_pool_compressed_size
+ description: Zswap compressed bytes currently stored
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: compressed_size
+ - name: system.zswap_pool_raw_size
+ description: Zswap uncompressed bytes currently stored
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: uncompressed_size
+ - name: system.zswap_rejections
+ description: Zswap rejections
+ unit: "rejections/s"
+ chart_type: stacked
+ dimensions:
+ - name: compress_poor
+ - name: kmemcache_fail
+ - name: alloc_fail
+ - name: reclaim_fail
+ - name: system.zswap_pool_limit_hit
+ description: Zswap pool limit was reached
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: limit
+ - name: system.zswap_written_back_raw_bytes
+ description: Zswap uncomressed bytes written back when pool limit was reached
+ unit: "bytes/s"
+ chart_type: area
+ dimensions:
+ - name: written_back
+ - name: system.zswap_same_filled_raw_size
+ description: Zswap same-value filled uncompressed bytes currently stored
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: same_filled
+ - name: system.zswap_duplicate_entry
+ description: Zswap duplicate store was encountered
+ unit: "entries/s"
+ chart_type: line
+ dimensions:
+ - name: duplicate
+ - meta:
+ plugin_name: debugfs.plugin
+ module_name: intel_rapl
+ monitored_instance:
+ name: Power Capping
+ link: 'https://www.kernel.org/doc/html/next/power/powercap/powercap.html'
+ categories:
+ - data-collection.linux-systems.kernel-metrics
+ icon_filename: 'powersupply.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - power capping
+ - energy
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: >
+ Collects power capping performance metrics on Linux systems.
+ method_description: 'Parse data from `debugfs file.'
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: >
+ This integration requires read access to files under `/sys/devices/virtual/powercap`, which are accessible
+ only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to
+ debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing
+ file read permission checks and directory read and execute permission checks. If file capabilities are not
+ usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.
+ default_behavior:
+ auto_detection:
+ description: >
+ Assuming that debugfs is mounted and the required permissions are available, this integration will
+ automatically detect whether or not the system is using zswap.
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'filesystem'
+ description: >
+ The debugfs filesystem must be mounted on your host for plugin to collect data.
+ You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally.
+ It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem
+ before starting netdata.
+ configuration:
+ file:
+ name: 'netdata.conf'
+ section_name: '[plugin:debugfs]'
+ description: 'This is netdata main configuration file.'
+ options:
+ description: ''
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Additinal parameters for collector
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: "Monitor the Intel RAPL zones Consumption."
+ availability: []
+ scopes:
+ - name: global
+ description: "Global Intel RAPL zones."
+ labels: []
+ metrics:
+ - name: cpu.powercap_intel_rapl_zone
+ description: Intel RAPL Zone Power Consumption
+ unit: "Watts"
+ chart_type: line
+ dimensions:
+ - name: Power
+ - name: cpu.powercap_intel_rapl_subzones
+ description: Intel RAPL Subzones Power Consumption
+ unit: "Watts"
+ chart_type: line
+ dimensions:
+ - name: dram
+ - name: core
+ - name: uncore
diff --git a/collectors/debugfs.plugin/metrics.csv b/collectors/debugfs.plugin/metrics.csv
deleted file mode 100644
index a21383941..000000000
--- a/collectors/debugfs.plugin/metrics.csv
+++ /dev/null
@@ -1,12 +0,0 @@
-metric,scode,dimensions,unit,description,chart_type,labels,plugin,module
-mem.fragmentation_index_dma,node,"order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10",index,Memory fragmentation index for each order,line,numa_node,debugfs.plugin,/sys/kernel/debug/extfrag
-mem.fragmentation_index_dma32,node,"order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10",index,Memory fragmentation index for each order,line,numa_node,debugfs.plugin,/sys/kernel/debug/extfrag
-mem.fragmentation_index_normal,node,"order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10",index,Memory fragmentation index for each order,line,numa_node,debugfs.plugin,/sys/kernel/debug/extfrag
-system.zswap_pool_compression_ratio,,compression_ratio,ratio,Zswap compression ratio,line,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_pool_compressed_size,,compressed_size,bytes,Zswap compressed bytes currently stored,area,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_pool_raw_size,,uncompressed_size,bytes,Zswap uncompressed bytes currently stored,area,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_rejections,,"compress_poor, kmemcache_fail, alloc_fail, reclaim_fail",rejections/s,Zswap rejections,stacked,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_pool_limit_hit,,limit,events/s,Zswap pool limit was reached,line,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_written_back_raw_bytes,,written_back,bytes/s,Zswap uncomressed bytes written back when pool limit was reached,area,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_same_filled_raw_size,,same_filled,bytes,Zswap same-value filled uncompressed bytes currently stored,area,,debugfs.plugin,/sys/kernel/debug/zswap
-system.zswap_duplicate_entry,,duplicate,entries/s,Zswap duplicate store was encountered,line,,debugfs.plugin,/sys/kernel/debug/zswap
diff --git a/collectors/debugfs.plugin/multi_metadata.yaml b/collectors/debugfs.plugin/multi_metadata.yaml
deleted file mode 100644
index 652aff7a7..000000000
--- a/collectors/debugfs.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,233 +0,0 @@
-name: debugfs.plugin
-modules:
- - meta:
- plugin_name: debugfs.plugin
- module_name: /sys/kernel/debug/extfrag
- monitored_instance:
- name: debugfs /sys/kernel/debug/extfrag
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: node
- description: ""
- labels:
- - name: numa_node
- description: TBD
- metrics:
- - name: mem.fragmentation_index_dma
- description: Memory fragmentation index for each order
- unit: "index"
- chart_type: line
- dimensions:
- - name: order0
- - name: order1
- - name: order2
- - name: order3
- - name: order4
- - name: order5
- - name: order6
- - name: order7
- - name: order8
- - name: order9
- - name: order10
- - name: mem.fragmentation_index_dma32
- description: Memory fragmentation index for each order
- unit: "index"
- chart_type: line
- dimensions:
- - name: order0
- - name: order1
- - name: order2
- - name: order3
- - name: order4
- - name: order5
- - name: order6
- - name: order7
- - name: order8
- - name: order9
- - name: order10
- - name: mem.fragmentation_index_normal
- description: Memory fragmentation index for each order
- unit: "index"
- chart_type: line
- dimensions:
- - name: order0
- - name: order1
- - name: order2
- - name: order3
- - name: order4
- - name: order5
- - name: order6
- - name: order7
- - name: order8
- - name: order9
- - name: order10
- - meta:
- plugin_name: debugfs.plugin
- module_name: /sys/kernel/debug/zswap
- monitored_instance:
- name: debugfs /sys/kernel/debug/zswap
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.zswap_pool_compression_ratio
- description: Zswap compression ratio
- unit: "ratio"
- chart_type: line
- dimensions:
- - name: compression_ratio
- - name: system.zswap_pool_compressed_size
- description: Zswap compressed bytes currently stored
- unit: "bytes"
- chart_type: area
- dimensions:
- - name: compressed_size
- - name: system.zswap_pool_raw_size
- description: Zswap uncompressed bytes currently stored
- unit: "bytes"
- chart_type: area
- dimensions:
- - name: uncompressed_size
- - name: system.zswap_rejections
- description: Zswap rejections
- unit: "rejections/s"
- chart_type: stacked
- dimensions:
- - name: compress_poor
- - name: kmemcache_fail
- - name: alloc_fail
- - name: reclaim_fail
- - name: system.zswap_pool_limit_hit
- description: Zswap pool limit was reached
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: limit
- - name: system.zswap_written_back_raw_bytes
- description: Zswap uncomressed bytes written back when pool limit was reached
- unit: "bytes/s"
- chart_type: area
- dimensions:
- - name: written_back
- - name: system.zswap_same_filled_raw_size
- description: Zswap same-value filled uncompressed bytes currently stored
- unit: "bytes"
- chart_type: area
- dimensions:
- - name: same_filled
- - name: system.zswap_duplicate_entry
- description: Zswap duplicate store was encountered
- unit: "entries/s"
- chart_type: line
- dimensions:
- - name: duplicate
diff --git a/collectors/debugfs.plugin/sys_devices_virtual_powercap.c b/collectors/debugfs.plugin/sys_devices_virtual_powercap.c
new file mode 100644
index 000000000..5f22b19e2
--- /dev/null
+++ b/collectors/debugfs.plugin/sys_devices_virtual_powercap.c
@@ -0,0 +1,217 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "debugfs_plugin.h"
+
+struct zone_t {
+ char *zone_chart_id;
+ char *subzone_chart_id;
+ char *name;
+ char *path;
+
+ unsigned long long max_energy_range_uj;
+ unsigned long long energy_uj;
+
+ struct zone_t *subzones;
+
+ struct zone_t *prev, *next;
+};
+
+static struct zone_t *rapl_zones = NULL;
+
+static bool get_measurement(const char *path, unsigned long long *energy_uj) {
+ return read_single_number_file(path, energy_uj) == 0;
+}
+
+static struct zone_t *get_rapl_zone(const char *control_type __maybe_unused, struct zone_t *parent __maybe_unused, const char *dirname) {
+ char temp[FILENAME_MAX + 1];
+ snprintfz(temp, FILENAME_MAX, "%s/%s", dirname, "name");
+
+ char name[FILENAME_MAX + 1] = "";
+ if (read_file(temp, name, sizeof(name) - 1) != 0)
+ return NULL;
+
+ char *trimmed = trim(name);
+ if (unlikely(trimmed == NULL || trimmed[0] == 0))
+ return NULL;
+
+ snprintfz(temp, FILENAME_MAX, "%s/%s", dirname, "max_energy_range_uj");
+ unsigned long long max_energy_range_uj = 0;
+ if (unlikely(read_single_number_file(temp, &max_energy_range_uj) != 0)) {
+ collector_error("Cannot read %s", temp);
+ return NULL;
+ }
+
+ snprintfz(temp, FILENAME_MAX, "%s/%s", dirname, "energy_uj");
+ unsigned long long energy_uj;
+ if (unlikely(!get_measurement(temp, &energy_uj))) {
+ collector_info("%s: Cannot read %s", trimmed, temp);
+ return NULL;
+ }
+
+ struct zone_t *zone = callocz(1, sizeof(*zone));
+
+ zone->name = strdupz(trimmed);
+ zone->path = strdupz(temp);
+
+ zone->max_energy_range_uj = max_energy_range_uj;
+ zone->energy_uj = energy_uj;
+
+ collector_info("Found zone: \"%s\"", zone->name);
+
+ return zone;
+}
+
+static struct zone_t *look_for_rapl_zones(const char *control_type, struct zone_t *parent, const char *path, int depth) {
+ if(depth > 2)
+ return NULL;
+
+ struct zone_t *base = NULL;
+
+ DIR *dir = opendir(path);
+ if (unlikely(dir == NULL))
+ return NULL;
+
+ struct dirent *de = NULL;
+ while ((de = readdir(dir))) {
+ if (de->d_type != DT_DIR || de->d_name[0] == '.')
+ continue;
+
+ if(strncmp(de->d_name, "intel-rapl:", 11) != 0)
+ continue;
+
+ char zone_path[FILENAME_MAX + 1];
+ snprintfz(zone_path, FILENAME_MAX, "%s/%s", path, de->d_name);
+
+ struct zone_t *zone = get_rapl_zone(control_type, parent, zone_path);
+ if(zone) {
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(base, zone, prev, next);
+
+ if(!parent)
+ zone->subzones = look_for_rapl_zones(control_type, zone, zone_path, depth + 1);
+ }
+ }
+
+ closedir(dir);
+ return base;
+}
+
+static struct zone_t *get_main_rapl_zones(void) {
+ struct zone_t *base = NULL;
+
+ char dirname[FILENAME_MAX + 1];
+ snprintfz(dirname, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/virtual/powercap");
+
+ DIR *dir = opendir(dirname);
+ if (unlikely(dir == NULL))
+ return 0;
+
+ struct dirent *de = NULL;
+ while ((de = readdir(dir))) {
+ if (de->d_type != DT_DIR || de->d_name[0] == '.')
+ continue;
+
+ if(strncmp(de->d_name, "intel-rapl", 10) != 0)
+ continue;
+
+ char control_type_path[FILENAME_MAX + 1];
+ snprintfz(control_type_path, FILENAME_MAX, "%s/%s", dirname, de->d_name);
+
+ collector_info("Looking at control type \"%s\"", de->d_name);
+ struct zone_t *zone = look_for_rapl_zones(de->d_name, NULL, control_type_path, 0);
+ if(zone)
+ DOUBLE_LINKED_LIST_APPEND_LIST_UNSAFE(base, zone, prev, next);
+ }
+ closedir(dir);
+
+ return base;
+}
+
+int do_sys_devices_virtual_powercap(int update_every, const char *name __maybe_unused) {
+
+ if (unlikely(!rapl_zones)) {
+ rapl_zones = get_main_rapl_zones();
+ if (unlikely(!rapl_zones)) {
+ collector_info("Failed to find powercap zones.");
+ return 1;
+ }
+ }
+
+ for(struct zone_t *zone = rapl_zones; zone ; zone = zone->next) {
+ if(!zone->zone_chart_id) {
+ char id[1000 + 1];
+ snprintf(id, 1000, "cpu.powercap_intel_rapl_zone_%s", zone->name);
+ zone->zone_chart_id = strdupz(id);
+
+ fprintf(stdout,
+ "CHART '%s' '' 'Intel RAPL Zone Power Consumption' 'Watts' 'powercap' '%s' '%s' %d %d '' 'debugfs.plugin' 'intel_rapl'\n",
+ zone->zone_chart_id,
+ "cpu.powercap_intel_rapl_zone",
+ debugfs_rrdset_type_name(RRDSET_TYPE_LINE),
+ NETDATA_CHART_PRIO_POWERCAP,
+ update_every);
+
+ fprintf(stdout,
+ "CLABEL 'zone' '%s' 0\n"
+ "CLABEL_COMMIT\n",
+ zone->name);
+
+ fprintf(stdout,
+ "DIMENSION 'power' '' %s 1 1000000 ''\n",
+ debugfs_rrd_algorithm_name(RRD_ALGORITHM_INCREMENTAL));
+
+ // for the sub-zones
+ snprintf(id, 1000, "cpu.powercap_intel_rapl_subzones_%s", zone->name);
+ zone->subzone_chart_id = strdupz(id);
+ fprintf(stdout,
+ "CHART '%s' '' 'Intel RAPL Subzones Power Consumption' 'Watts' 'powercap' '%s' '%s' %d %d '' 'debugfs.plugin' 'intel_rapl'\n",
+ zone->subzone_chart_id,
+ "cpu.powercap_intel_rapl_subzones",
+ debugfs_rrdset_type_name(RRDSET_TYPE_LINE),
+ NETDATA_CHART_PRIO_POWERCAP + 1,
+ update_every);
+
+ fprintf(stdout,
+ "CLABEL 'zone' '%s' 0\n"
+ "CLABEL_COMMIT\n",
+ zone->name);
+
+ for(struct zone_t *subzone = zone->subzones; subzone ; subzone = subzone->next) {
+ fprintf(stdout,
+ "DIMENSION '%s' '' %s 1 1000000 ''\n",
+ subzone->name,
+ debugfs_rrd_algorithm_name(RRD_ALGORITHM_INCREMENTAL));
+ }
+ }
+
+ if(get_measurement(zone->path, &zone->energy_uj)) {
+ fprintf(stdout,
+ "BEGIN '%s'\n"
+ "SET power = %lld\n"
+ "END\n"
+ , zone->zone_chart_id
+ , zone->energy_uj);
+ }
+
+ if(zone->subzones) {
+ fprintf(stdout,
+ "BEGIN '%s'\n",
+ zone->subzone_chart_id);
+
+ for (struct zone_t *subzone = zone->subzones; subzone; subzone = subzone->next) {
+ if(get_measurement(subzone->path, &subzone->energy_uj)) {
+ fprintf(stdout,
+ "SET '%s' = %lld\n",
+ subzone->name,
+ subzone->energy_uj);
+ }
+ }
+
+ fprintf(stdout, "END\n");
+ }
+
+ }
+
+ fflush(stdout);
+
+ return 0;
+}
diff --git a/collectors/diskspace.plugin/metadata.yaml b/collectors/diskspace.plugin/metadata.yaml
index 0e8e7f353..cb45edf34 100644
--- a/collectors/diskspace.plugin/metadata.yaml
+++ b/collectors/diskspace.plugin/metadata.yaml
@@ -1,98 +1,139 @@
-meta:
- plugin_name: diskspace.plugin
- module_name: diskspace.plugin
- monitored_instance:
- name: Disk space
- link: ''
- categories:
- - data-collection.linux-systems
- icon_filename: 'hard-drive.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Disk space metrics for proficient storage management. Keep track of usage, free space, and error rates to prevent disk space issues.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: disk_space_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.space
- info: disk ${label:mount_point} space utilization
- os: "linux freebsd"
-- name: disk_inode_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.inodes
- info: disk ${label:mount_point} inode utilization
- os: "linux freebsd"
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: mount point
- description: ""
- labels:
- - name: mount_point
- description: TBD
- - name: filesystem
- description: TBD
- - name: mount_root
- description: TBD
+plugin_name: diskspace.plugin
+modules:
+ - meta:
+ plugin_name: diskspace.plugin
+ module_name: diskspace.plugin
+ monitored_instance:
+ name: Disk space
+ link: ""
+ categories:
+ - data-collection.linux-systems
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: ebpf.plugin
+ module_name: disk
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - disk
+ - I/O
+ - space
+ - inode
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Disk space metrics for proficient storage management. Keep track of usage, free space, and error rates to prevent disk space issues."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "The plugin reads data from `/proc/self/mountinfo` and `/proc/diskstats file`."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:proc:diskspace]"
+ description: "This is netdata main configuration file"
+ options:
+ description: "You can also specify per mount point `[plugin:proc:diskspace:mountpoint]`"
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: remove charts of unmounted disks
+ description: Remove chart when a device is unmounted on host.
+ default_value: yes
+ required: false
+ - name: check for new mount points every
+ description: Parse proc files frequency.
+ default_value: 15
+ required: false
+ - name: exclude space metrics on paths
+ description: Do not show metrics (charts) for listed paths. This option accepts netdata simple pattern.
+ default_value: /proc/* /sys/* /var/run/user/* /run/user/* /snap/* /var/lib/docker/*
+ required: false
+ - name: exclude space metrics on filesystems
+ description: Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern.
+ default_value: "*gvfs *gluster* *s3fs *ipfs *davfs2 *httpfs *sshfs *gdfs *moosefs fusectl autofs"
+ required: false
+ - name: exclude inode metrics on filesystems
+ description: Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern.
+ default_value: msdosfs msdos vfat overlayfs aufs* *unionfs
+ required: false
+ - name: space usage for all disks
+ description: Define if plugin will show metrics for space usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option.
+ default_value: auto
+ required: false
+ - name: inodes usage for all disks
+ description: Define if plugin will show metrics for inode usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option.
+ default_value: auto
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: disk_space_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.space
+ info: disk ${label:mount_point} space utilization
+ os: "linux freebsd"
+ - name: disk_inode_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.inodes
+ info: disk ${label:mount_point} inode utilization
+ os: "linux freebsd"
metrics:
- - name: disk.space
- description: Disk Space Usage
- unit: "GiB"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
- - name: disk.inodes
- description: Disk Files (inodes) Usage
- unit: "inodes"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: mount point
+ description: ""
+ labels:
+ - name: mount_point
+ description: Path used to mount a filesystem
+ - name: filesystem
+ description: The filesystem used to format a partition.
+ - name: mount_root
+ description: Root directory where mount points are present.
+ metrics:
+ - name: disk.space
+ description: Disk Space Usage
+ unit: "GiB"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
+ - name: disk.inodes
+ description: Disk Files (inodes) Usage
+ unit: "inodes"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
diff --git a/collectors/diskspace.plugin/metrics.csv b/collectors/diskspace.plugin/metrics.csv
deleted file mode 100644
index 2b61ee9a8..000000000
--- a/collectors/diskspace.plugin/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-disk.space,mount point,"avail, used, reserved_for_root",GiB,"Disk Space Usage",stacked,"mount_point, filesystem, mount_root",diskspace.plugin,
-disk.inodes,mount point,"avail, used, reserved_for_root",inodes,"Disk Files (inodes) Usage",stacked,"mount_point, filesystem, mount_root",diskspace.plugin,
\ No newline at end of file
diff --git a/collectors/ebpf.plugin/ebpf.c b/collectors/ebpf.plugin/ebpf.c
index 72aedba6a..844047305 100644
--- a/collectors/ebpf.plugin/ebpf.c
+++ b/collectors/ebpf.plugin/ebpf.c
@@ -60,7 +60,7 @@ ebpf_module_t ebpf_modules[] = {
NETDATA_V5_14,
.load = EBPF_LOAD_LEGACY, .targets = NULL, .probe_links = NULL, .objects = NULL,
.thread = NULL, .maps_per_core = CONFIG_BOOLEAN_YES, .lifetime = EBPF_DEFAULT_LIFETIME, .running_time = 0 },
- { .thread_name = "socket", .config_name = "socket", .thread_description = NETDATA_EBPF_SOCKET_MODULE_DESC,
+ { .thread_name = "socket", .config_name = "socket", .thread_description = NETDATA_EBPF_SOCKET_MODULE_DESC,
.enabled = 0, .start_routine = ebpf_socket_thread,
.update_every = EBPF_DEFAULT_UPDATE_EVERY, .global_charts = 1, .apps_charts = NETDATA_EBPF_APPS_FLAG_NO,
.apps_level = NETDATA_APPS_LEVEL_REAL_PARENT, .cgroup_charts = CONFIG_BOOLEAN_NO, .mode = MODE_ENTRY, .optional = 0,
@@ -1229,7 +1229,7 @@ void write_histogram_chart(char *family, char *name, const netdata_idx_t *hist,
*/
int ebpf_statistic_create_aral_chart(char *name, ebpf_module_t *em)
{
- static int priority = 140100;
+ static int priority = NETATA_EBPF_ORDER_STAT_ARAL_BEGIN;
char *mem = { NETDATA_EBPF_STAT_DIMENSION_MEMORY };
char *aral = { NETDATA_EBPF_STAT_DIMENSION_ARAL };
@@ -1325,6 +1325,49 @@ void ebpf_send_data_aral_chart(ARAL *memory, ebpf_module_t *em)
write_end_chart();
}
+/*****************************************************************
+ *
+ * FUNCTIONS TO READ GLOBAL HASH TABLES
+ *
+ *****************************************************************/
+
+/**
+ * Read Global Table Stats
+ *
+ * Read data from specified table (map_fd) using array allocated inside thread(values) and storing
+ * them in stats vector starting from the first position.
+ *
+ * For PID tables is recommended to use a function to parse the specific data.
+ *
+ * @param stats vector used to store data
+ * @param values helper to read data from hash tables.
+ * @param map_fd table that has data
+ * @param maps_per_core Is necessary to read data from all cores?
+ * @param begin initial value to query hash table
+ * @param end last value that will not be used.
+ */
+void ebpf_read_global_table_stats(netdata_idx_t *stats,
+ netdata_idx_t *values,
+ int map_fd,
+ int maps_per_core,
+ uint32_t begin,
+ uint32_t end)
+{
+ uint32_t idx, order;
+
+ for (idx = begin, order = 0; idx < end; idx++, order++) {
+ if (!bpf_map_lookup_elem(map_fd, &idx, values)) {
+ int i;
+ int before = (maps_per_core) ? ebpf_nprocs: 1;
+ netdata_idx_t total = 0;
+ for (i = 0; i < before; i++)
+ total += values[i];
+
+ stats[order] = total;
+ }
+ }
+}
+
/*****************************************************************
*
* FUNCTIONS TO DEFINE OPTIONS
@@ -2453,6 +2496,47 @@ static char *memlock_stat = {"memory_locked"};
static char *hash_table_stat = {"hash_table"};
static char *hash_table_core[NETDATA_EBPF_LOAD_STAT_END] = {"per_core", "unique"};
+/**
+ * Send Hash Table PID data
+ *
+ * Send all information associated with a specific pid table.
+ *
+ * @param chart chart id
+ * @param idx index position in hash_table_stats
+ */
+static inline void ebpf_send_hash_table_pid_data(char *chart, uint32_t idx)
+{
+ int i;
+ write_begin_chart(NETDATA_MONITORING_FAMILY, chart);
+ for (i = 0; i < EBPF_MODULE_FUNCTION_IDX; i++) {
+ ebpf_module_t *wem = &ebpf_modules[i];
+ if (wem->apps_routine)
+ write_chart_dimension((char *)wem->thread_name,
+ (wem->enabled < NETDATA_THREAD_EBPF_STOPPING) ?
+ wem->hash_table_stats[idx]:
+ 0);
+ }
+ write_end_chart();
+}
+
+/**
+ * Send Global Hash Table data
+ *
+ * Send all information associated with a specific pid table.
+ *
+ */
+static inline void ebpf_send_global_hash_table_data()
+{
+ int i;
+ write_begin_chart(NETDATA_MONITORING_FAMILY, NETDATA_EBPF_HASH_TABLES_GLOBAL_ELEMENTS);
+ for (i = 0; i < EBPF_MODULE_FUNCTION_IDX; i++) {
+ ebpf_module_t *wem = &ebpf_modules[i];
+ write_chart_dimension((char *)wem->thread_name,
+ (wem->enabled < NETDATA_THREAD_EBPF_STOPPING) ? NETDATA_CONTROLLER_END: 0);
+ }
+ write_end_chart();
+}
+
/**
* Send Statistic Data
*
@@ -2500,6 +2584,11 @@ void ebpf_send_statistic_data()
write_chart_dimension(hash_table_core[NETDATA_EBPF_THREAD_PER_CORE], (long long)plugin_statistics.hash_percpu);
write_chart_dimension(hash_table_core[NETDATA_EBPF_THREAD_UNIQUE], (long long)plugin_statistics.hash_unique);
write_end_chart();
+
+ ebpf_send_global_hash_table_data();
+
+ ebpf_send_hash_table_pid_data(NETDATA_EBPF_HASH_TABLES_INSERT_PID_ELEMENTS, NETDATA_EBPF_GLOBAL_TABLE_PID_TABLE_ADD);
+ ebpf_send_hash_table_pid_data(NETDATA_EBPF_HASH_TABLES_REMOVE_PID_ELEMENTS, NETDATA_EBPF_GLOBAL_TABLE_PID_TABLE_DEL);
}
/**
@@ -2681,6 +2770,66 @@ static inline void ebpf_create_statistic_hash_per_core(int update_every)
ebpf_algorithms[NETDATA_EBPF_ABSOLUTE_IDX]);
}
+/**
+ * Hash table global elements
+ *
+ * Write to standard output current values inside global tables.
+ *
+ * @param update_every time used to update charts
+ */
+static void ebpf_create_statistic_hash_global_elements(int update_every)
+{
+ ebpf_write_chart_cmd(NETDATA_MONITORING_FAMILY,
+ NETDATA_EBPF_HASH_TABLES_GLOBAL_ELEMENTS,
+ "Controllers inside global table",
+ "rows",
+ NETDATA_EBPF_FAMILY,
+ NETDATA_EBPF_CHART_TYPE_LINE,
+ NULL,
+ NETDATA_EBPF_ORDER_STAT_HASH_GLOBAL_TABLE_TOTAL,
+ update_every,
+ NETDATA_EBPF_MODULE_NAME_PROCESS);
+
+ int i;
+ for (i = 0; i < EBPF_MODULE_FUNCTION_IDX; i++) {
+ ebpf_write_global_dimension((char *)ebpf_modules[i].thread_name,
+ (char *)ebpf_modules[i].thread_name,
+ ebpf_algorithms[NETDATA_EBPF_ABSOLUTE_IDX]);
+ }
+}
+
+/**
+ * Hash table global elements
+ *
+ * Write to standard output current values inside global tables.
+ *
+ * @param update_every time used to update charts
+ * @param id chart id
+ * @param title chart title
+ * @param order ordder chart will be shown on dashboard.
+ */
+static void ebpf_create_statistic_hash_pid_table(int update_every, char *id, char *title, int order)
+{
+ ebpf_write_chart_cmd(NETDATA_MONITORING_FAMILY,
+ id,
+ title,
+ "rows",
+ NETDATA_EBPF_FAMILY,
+ NETDATA_EBPF_CHART_TYPE_LINE,
+ NULL,
+ order,
+ update_every,
+ NETDATA_EBPF_MODULE_NAME_PROCESS);
+
+ int i;
+ for (i = 0; i < EBPF_MODULE_FUNCTION_IDX; i++) {
+ ebpf_module_t *wem = &ebpf_modules[i];
+ if (wem->apps_routine)
+ ebpf_write_global_dimension((char *)wem->thread_name,
+ (char *)wem->thread_name,
+ ebpf_algorithms[NETDATA_EBPF_INCREMENTAL_IDX]);
+ }
+}
/**
* Create Statistics Charts
@@ -2718,6 +2867,20 @@ static void ebpf_create_statistic_charts(int update_every)
ebpf_create_statistic_hash_tables(update_every);
ebpf_create_statistic_hash_per_core(update_every);
+
+ ebpf_create_statistic_hash_global_elements(update_every);
+
+ ebpf_create_statistic_hash_pid_table(update_every,
+ NETDATA_EBPF_HASH_TABLES_INSERT_PID_ELEMENTS,
+ "Elements inserted into PID table",
+ NETDATA_EBPF_ORDER_STAT_HASH_PID_TABLE_ADDED);
+
+ ebpf_create_statistic_hash_pid_table(update_every,
+ NETDATA_EBPF_HASH_TABLES_REMOVE_PID_ELEMENTS,
+ "Elements removed from PID table",
+ NETDATA_EBPF_ORDER_STAT_HASH_PID_TABLE_REMOVED);
+
+ fflush(stdout);
}
/*****************************************************************
diff --git a/collectors/ebpf.plugin/ebpf.h b/collectors/ebpf.plugin/ebpf.h
index f008d21af..78e3a9252 100644
--- a/collectors/ebpf.plugin/ebpf.h
+++ b/collectors/ebpf.plugin/ebpf.h
@@ -69,8 +69,6 @@ typedef struct netdata_syscall_stat {
struct netdata_syscall_stat *next; // Link list
} netdata_syscall_stat_t;
-typedef uint64_t netdata_idx_t;
-
typedef struct netdata_publish_syscall {
char *dimension;
char *name;
@@ -169,6 +167,9 @@ typedef struct ebpf_tracepoint {
#define NETDATA_EBPF_KERNEL_MEMORY "ebpf_kernel_memory"
#define NETDATA_EBPF_HASH_TABLES_LOADED "ebpf_hash_tables_count"
#define NETDATA_EBPF_HASH_TABLES_PER_CORE "ebpf_hash_tables_per_core"
+#define NETDATA_EBPF_HASH_TABLES_GLOBAL_ELEMENTS "ebpf_hash_tables_global_elements"
+#define NETDATA_EBPF_HASH_TABLES_INSERT_PID_ELEMENTS "ebpf_hash_tables_insert_pid_elements"
+#define NETDATA_EBPF_HASH_TABLES_REMOVE_PID_ELEMENTS "ebpf_hash_tables_remove_pid_elements"
// Log file
#define NETDATA_DEVELOPER_LOG_FILE "developer.log"
@@ -319,6 +320,9 @@ void ebpf_update_disabled_plugin_stats(ebpf_module_t *em);
ARAL *ebpf_allocate_pid_aral(char *name, size_t size);
void ebpf_unload_legacy_code(struct bpf_object *objects, struct bpf_link **probe_links);
+void ebpf_read_global_table_stats(netdata_idx_t *stats, netdata_idx_t *values, int map_fd,
+ int maps_per_core, uint32_t begin, uint32_t end);
+
extern ebpf_filesystem_partitions_t localfs[];
extern ebpf_sync_syscalls_t local_syscalls[];
extern int ebpf_exit_plugin;
diff --git a/collectors/ebpf.plugin/ebpf_cachestat.c b/collectors/ebpf.plugin/ebpf_cachestat.c
index 72c337941..affecdea2 100644
--- a/collectors/ebpf.plugin/ebpf_cachestat.c
+++ b/collectors/ebpf.plugin/ebpf_cachestat.c
@@ -854,26 +854,24 @@ void ebpf_cachestat_create_apps_charts(struct ebpf_module *em, void *ptr)
*
* Read the table with number of calls for all functions
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_cachestat_read_global_table(int maps_per_core)
+static void ebpf_cachestat_read_global_tables(netdata_idx_t *stats, int maps_per_core)
{
- uint32_t idx;
- netdata_idx_t *val = cachestat_hash_values;
- netdata_idx_t *stored = cachestat_values;
- int fd = cachestat_maps[NETDATA_CACHESTAT_GLOBAL_STATS].map_fd;
-
- for (idx = NETDATA_KEY_CALLS_ADD_TO_PAGE_CACHE_LRU; idx < NETDATA_CACHESTAT_END; idx++) {
- if (!bpf_map_lookup_elem(fd, &idx, stored)) {
- int i;
- int end = (maps_per_core) ? ebpf_nprocs: 1;
- netdata_idx_t total = 0;
- for (i = 0; i < end; i++)
- total += stored[i];
-
- val[idx] = total;
- }
- }
+ ebpf_read_global_table_stats(cachestat_hash_values,
+ cachestat_values,
+ cachestat_maps[NETDATA_CACHESTAT_GLOBAL_STATS].map_fd,
+ maps_per_core,
+ NETDATA_KEY_CALLS_ADD_TO_PAGE_CACHE_LRU,
+ NETDATA_CACHESTAT_END);
+
+ ebpf_read_global_table_stats(stats,
+ cachestat_values,
+ cachestat_maps[NETDATA_CACHESTAT_CTRL].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
}
/**
@@ -1288,6 +1286,8 @@ static void cachestat_collector(ebpf_module_t *em)
//This will be cancelled by its parent
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
@@ -1296,7 +1296,7 @@ static void cachestat_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_cachestat_read_global_table(maps_per_core);
+ ebpf_cachestat_read_global_tables(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps)
ebpf_read_cachestat_apps_table(maps_per_core);
diff --git a/collectors/ebpf.plugin/ebpf_dcstat.c b/collectors/ebpf.plugin/ebpf_dcstat.c
index dba3f44d9..feb935b93 100644
--- a/collectors/ebpf.plugin/ebpf_dcstat.c
+++ b/collectors/ebpf.plugin/ebpf_dcstat.c
@@ -690,26 +690,24 @@ static void ebpf_update_dc_cgroup(int maps_per_core)
*
* Read the table with number of calls for all functions
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_dc_read_global_table(int maps_per_core)
+static void ebpf_dc_read_global_tables(netdata_idx_t *stats, int maps_per_core)
{
- uint32_t idx;
- netdata_idx_t *val = dcstat_hash_values;
- netdata_idx_t *stored = dcstat_values;
- int fd = dcstat_maps[NETDATA_DCSTAT_GLOBAL_STATS].map_fd;
-
- for (idx = NETDATA_KEY_DC_REFERENCE; idx < NETDATA_DIRECTORY_CACHE_END; idx++) {
- if (!bpf_map_lookup_elem(fd, &idx, stored)) {
- int i;
- int end = (maps_per_core) ? ebpf_nprocs: 1;
- netdata_idx_t total = 0;
- for (i = 0; i < end; i++)
- total += stored[i];
-
- val[idx] = total;
- }
- }
+ ebpf_read_global_table_stats(dcstat_hash_values,
+ dcstat_values,
+ dcstat_maps[NETDATA_DCSTAT_GLOBAL_STATS].map_fd,
+ maps_per_core,
+ NETDATA_KEY_DC_REFERENCE,
+ NETDATA_DIRECTORY_CACHE_END);
+
+ ebpf_read_global_table_stats(stats,
+ dcstat_values,
+ dcstat_maps[NETDATA_DCSTAT_CTRL].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
}
/**
@@ -1169,6 +1167,8 @@ static void dcstat_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
@@ -1177,7 +1177,7 @@ static void dcstat_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_dc_read_global_table(maps_per_core);
+ ebpf_dc_read_global_tables(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps)
read_dc_apps_table(maps_per_core);
diff --git a/collectors/ebpf.plugin/ebpf_fd.c b/collectors/ebpf.plugin/ebpf_fd.c
index 214d2955d..f039647a1 100644
--- a/collectors/ebpf.plugin/ebpf_fd.c
+++ b/collectors/ebpf.plugin/ebpf_fd.c
@@ -360,7 +360,7 @@ static inline int ebpf_fd_load_and_attach(struct fd_bpf *obj, ebpf_module_t *em)
if (!ret) {
ebpf_fd_set_hash_tables(obj);
- ebpf_update_controller(fd_maps[NETDATA_CACHESTAT_CTRL].map_fd, em);
+ ebpf_update_controller(fd_maps[NETDATA_FD_CONTROLLER].map_fd, em);
}
return ret;
@@ -624,26 +624,24 @@ static void ebpf_fd_send_data(ebpf_module_t *em)
*
* Read the table with number of calls for all functions
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_fd_read_global_table(int maps_per_core)
+static void ebpf_fd_read_global_tables(netdata_idx_t *stats, int maps_per_core)
{
- uint32_t idx;
- netdata_idx_t *val = fd_hash_values;
- netdata_idx_t *stored = fd_values;
- int fd = fd_maps[NETDATA_FD_GLOBAL_STATS].map_fd;
-
- for (idx = NETDATA_KEY_CALLS_DO_SYS_OPEN; idx < NETDATA_FD_COUNTER; idx++) {
- if (!bpf_map_lookup_elem(fd, &idx, stored)) {
- int i;
- int end = (maps_per_core) ? ebpf_nprocs: 1;
- netdata_idx_t total = 0;
- for (i = 0; i < end; i++)
- total += stored[i];
-
- val[idx] = total;
- }
- }
+ ebpf_read_global_table_stats(fd_hash_values,
+ fd_values,
+ fd_maps[NETDATA_FD_GLOBAL_STATS].map_fd,
+ maps_per_core,
+ NETDATA_KEY_CALLS_DO_SYS_OPEN,
+ NETDATA_FD_COUNTER);
+
+ ebpf_read_global_table_stats(stats,
+ fd_values,
+ fd_maps[NETDATA_FD_CONTROLLER].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
}
/**
@@ -1136,6 +1134,8 @@ static void fd_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
@@ -1144,7 +1144,7 @@ static void fd_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_fd_read_global_table(maps_per_core);
+ ebpf_fd_read_global_tables(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps)
read_fd_apps_table(maps_per_core);
diff --git a/collectors/ebpf.plugin/ebpf_functions.c b/collectors/ebpf.plugin/ebpf_functions.c
index cc26044c4..7a43692bc 100644
--- a/collectors/ebpf.plugin/ebpf_functions.c
+++ b/collectors/ebpf.plugin/ebpf_functions.c
@@ -206,7 +206,7 @@ static void ebpf_function_thread_manipulation(const char *transaction,
time_t expires = now_realtime_sec() + em->update_every;
BUFFER *wb = buffer_create(PLUGINSD_LINE_MAX, NULL);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS);
buffer_json_member_add_uint64(wb, "status", HTTP_RESP_OK);
buffer_json_member_add_string(wb, "type", "table");
buffer_json_member_add_time_t(wb, "update_every", em->update_every);
diff --git a/collectors/ebpf.plugin/ebpf_oomkill.c b/collectors/ebpf.plugin/ebpf_oomkill.c
index 66421d277..84830160a 100644
--- a/collectors/ebpf.plugin/ebpf_oomkill.c
+++ b/collectors/ebpf.plugin/ebpf_oomkill.c
@@ -419,6 +419,7 @@ static void oomkill_collector(ebpf_module_t *em)
int counter = update_every - 1;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
if (ebpf_exit_plugin || ++counter != update_every)
@@ -432,6 +433,9 @@ static void oomkill_collector(ebpf_module_t *em)
continue;
}
+ stats[NETDATA_CONTROLLER_PID_TABLE_ADD] += (uint64_t) count;
+ stats[NETDATA_CONTROLLER_PID_TABLE_DEL] += (uint64_t) count;
+
pthread_mutex_lock(&collect_data_mutex);
pthread_mutex_lock(&lock);
if (cgroups) {
diff --git a/collectors/ebpf.plugin/ebpf_process.c b/collectors/ebpf.plugin/ebpf_process.c
index 4d915e132..3537efc55 100644
--- a/collectors/ebpf.plugin/ebpf_process.c
+++ b/collectors/ebpf.plugin/ebpf_process.c
@@ -267,26 +267,22 @@ void ebpf_process_send_apps_data(struct ebpf_target *root, ebpf_module_t *em)
*
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_read_process_hash_global_tables(int maps_per_core)
+static void ebpf_read_process_hash_global_tables(netdata_idx_t *stats, int maps_per_core)
{
- uint64_t idx;
netdata_idx_t res[NETDATA_KEY_END_VECTOR];
-
- netdata_idx_t *val = process_hash_values;
- int fd = process_maps[NETDATA_PROCESS_GLOBAL_TABLE].map_fd;
- for (idx = 0; idx < NETDATA_KEY_END_VECTOR; idx++) {
- if (!bpf_map_lookup_elem(fd, &idx, val)) {
- uint64_t total = 0;
- int i;
- int end = (maps_per_core) ? ebpf_nprocs : 1;
- for (i = 0; i < end; i++)
- total += val[i];
-
- res[idx] = total;
- } else {
- res[idx] = 0;
- }
- }
+ ebpf_read_global_table_stats(res,
+ process_hash_values,
+ process_maps[NETDATA_PROCESS_GLOBAL_TABLE].map_fd,
+ maps_per_core,
+ 0,
+ NETDATA_KEY_END_VECTOR);
+
+ ebpf_read_global_table_stats(stats,
+ process_hash_values,
+ process_maps[NETDATA_PROCESS_CTRL_TABLE].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
process_aggregated_data[NETDATA_KEY_PUBLISH_PROCESS_EXIT].call = res[NETDATA_KEY_CALLS_DO_EXIT];
process_aggregated_data[NETDATA_KEY_PUBLISH_PROCESS_RELEASE_TASK].call = res[NETDATA_KEY_CALLS_RELEASE_TASK];
@@ -747,7 +743,6 @@ static void ebpf_process_exit(void *ptr)
ebpf_statistic_obsolete_aral_chart(em, process_disable_priority);
#endif
-
fflush(stdout);
pthread_mutex_unlock(&lock);
}
@@ -1121,6 +1116,8 @@ static void process_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
usec_t dt = heartbeat_next(&hb, USEC_PER_SEC);
(void)dt;
@@ -1130,7 +1127,7 @@ static void process_collector(ebpf_module_t *em)
if (++counter == update_every) {
counter = 0;
- ebpf_read_process_hash_global_tables(maps_per_core);
+ ebpf_read_process_hash_global_tables(stats, maps_per_core);
netdata_apps_integration_flags_t apps_enabled = em->apps_charts;
pthread_mutex_lock(&collect_data_mutex);
diff --git a/collectors/ebpf.plugin/ebpf_process.h b/collectors/ebpf.plugin/ebpf_process.h
index 48267d87b..d49e38452 100644
--- a/collectors/ebpf.plugin/ebpf_process.h
+++ b/collectors/ebpf.plugin/ebpf_process.h
@@ -48,7 +48,11 @@ enum netdata_ebpf_stats_order {
NETDATA_EBPF_ORDER_STAT_LOAD_METHOD,
NETDATA_EBPF_ORDER_STAT_KERNEL_MEMORY,
NETDATA_EBPF_ORDER_STAT_HASH_TABLES,
- NETDATA_EBPF_ORDER_STAT_HASH_CORE
+ NETDATA_EBPF_ORDER_STAT_HASH_CORE,
+ NETDATA_EBPF_ORDER_STAT_HASH_GLOBAL_TABLE_TOTAL,
+ NETDATA_EBPF_ORDER_STAT_HASH_PID_TABLE_ADDED,
+ NETDATA_EBPF_ORDER_STAT_HASH_PID_TABLE_REMOVED,
+ NETATA_EBPF_ORDER_STAT_ARAL_BEGIN
};
enum netdata_ebpf_load_mode_stats{
diff --git a/collectors/ebpf.plugin/ebpf_shm.c b/collectors/ebpf.plugin/ebpf_shm.c
index 78ada81f7..baeb7204e 100644
--- a/collectors/ebpf.plugin/ebpf_shm.c
+++ b/collectors/ebpf.plugin/ebpf_shm.c
@@ -646,30 +646,24 @@ static void shm_send_global()
*
* Read the table with number of calls for all functions
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_shm_read_global_table(int maps_per_core)
+static void ebpf_shm_read_global_table(netdata_idx_t *stats, int maps_per_core)
{
- netdata_idx_t *stored = shm_values;
- netdata_idx_t *val = shm_hash_values;
- int fd = shm_maps[NETDATA_SHM_GLOBAL_TABLE].map_fd;
- size_t length = sizeof(netdata_idx_t);
- if (maps_per_core)
- length *= ebpf_nprocs;
-
- uint32_t i, end = NETDATA_SHM_END;
- for (i = NETDATA_KEY_SHMGET_CALL; i < end; i++) {
- if (!bpf_map_lookup_elem(fd, &i, stored)) {
- int j;
- int last = (maps_per_core) ? ebpf_nprocs : 1;
- netdata_idx_t total = 0;
- for (j = 0; j < last; j++)
- total += stored[j];
-
- val[i] = total;
- memset(stored, 0 , length);
- }
- }
+ ebpf_read_global_table_stats(shm_hash_values,
+ shm_values,
+ shm_maps[NETDATA_SHM_GLOBAL_TABLE].map_fd,
+ maps_per_core,
+ NETDATA_KEY_SHMGET_CALL,
+ NETDATA_SHM_END);
+
+ ebpf_read_global_table_stats(stats,
+ shm_values,
+ shm_maps[NETDATA_SHM_CONTROLLER].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
}
/**
@@ -1039,6 +1033,8 @@ static void shm_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
if (ebpf_exit_plugin || ++counter != update_every)
@@ -1046,7 +1042,7 @@ static void shm_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_shm_read_global_table(maps_per_core);
+ ebpf_shm_read_global_table(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps) {
read_shm_apps_table(maps_per_core);
diff --git a/collectors/ebpf.plugin/ebpf_socket.c b/collectors/ebpf.plugin/ebpf_socket.c
index 2cad8bdf1..e4798b30c 100644
--- a/collectors/ebpf.plugin/ebpf_socket.c
+++ b/collectors/ebpf.plugin/ebpf_socket.c
@@ -2205,33 +2205,25 @@ void *ebpf_socket_read_hash(void *ptr)
/**
* Read the hash table and store data to allocated vectors.
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void read_hash_global_tables(int maps_per_core)
+static void ebpf_socket_read_hash_global_tables(netdata_idx_t *stats, int maps_per_core)
{
- uint64_t idx;
netdata_idx_t res[NETDATA_SOCKET_COUNTER];
-
- netdata_idx_t *val = socket_hash_values;
- size_t length = sizeof(netdata_idx_t);
- if (maps_per_core)
- length *= ebpf_nprocs;
-
- int fd = socket_maps[NETDATA_SOCKET_GLOBAL].map_fd;
- for (idx = 0; idx < NETDATA_SOCKET_COUNTER; idx++) {
- if (!bpf_map_lookup_elem(fd, &idx, val)) {
- uint64_t total = 0;
- int i;
- int end = (maps_per_core) ? ebpf_nprocs : 1;
- for (i = 0; i < end; i++)
- total += val[i];
-
- res[idx] = total;
- memset(socket_hash_values, 0, length);
- } else {
- res[idx] = 0;
- }
- }
+ ebpf_read_global_table_stats(res,
+ socket_hash_values,
+ socket_maps[NETDATA_SOCKET_GLOBAL].map_fd,
+ maps_per_core,
+ NETDATA_KEY_CALLS_TCP_SENDMSG,
+ NETDATA_SOCKET_COUNTER);
+
+ ebpf_read_global_table_stats(stats,
+ socket_hash_values,
+ socket_maps[NETDATA_SOCKET_TABLE_CTRL].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
socket_aggregated_data[NETDATA_IDX_TCP_SENDMSG].call = res[NETDATA_KEY_CALLS_TCP_SENDMSG];
socket_aggregated_data[NETDATA_IDX_TCP_CLEANUP_RBUF].call = res[NETDATA_KEY_CALLS_TCP_CLEANUP_RBUF];
@@ -2930,6 +2922,8 @@ static void socket_collector(ebpf_module_t *em)
int counter = update_every - 1;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
if (ebpf_exit_plugin || ++counter != update_every)
@@ -2939,7 +2933,7 @@ static void socket_collector(ebpf_module_t *em)
netdata_apps_integration_flags_t socket_apps_enabled = em->apps_charts;
if (socket_global_enabled) {
read_listen_table();
- read_hash_global_tables(maps_per_core);
+ ebpf_socket_read_hash_global_tables(stats, maps_per_core);
}
pthread_mutex_lock(&collect_data_mutex);
diff --git a/collectors/ebpf.plugin/ebpf_swap.c b/collectors/ebpf.plugin/ebpf_swap.c
index 9a1640a35..359fe2308 100644
--- a/collectors/ebpf.plugin/ebpf_swap.c
+++ b/collectors/ebpf.plugin/ebpf_swap.c
@@ -322,13 +322,13 @@ void ebpf_obsolete_swap_apps_charts(struct ebpf_module *em)
*/
static void ebpf_obsolete_swap_global(ebpf_module_t *em)
{
- ebpf_write_chart_obsolete(NETDATA_EBPF_SYSTEM_GROUP,
+ ebpf_write_chart_obsolete(NETDATA_EBPF_MEMORY_GROUP,
NETDATA_MEM_SWAP_CHART,
"Calls to access swap memory",
EBPF_COMMON_DIMENSION_CALL, NETDATA_SYSTEM_SWAP_SUBMENU,
NETDATA_EBPF_CHART_TYPE_LINE,
NULL,
- NETDATA_CHART_PRIO_SYSTEM_SWAP_CALLS,
+ NETDATA_CHART_PRIO_MEM_SWAP_CALLS,
em->update_every);
}
@@ -507,7 +507,7 @@ static void read_swap_apps_table(int maps_per_core)
*/
static void swap_send_global()
{
- write_io_chart(NETDATA_MEM_SWAP_CHART, NETDATA_EBPF_SYSTEM_GROUP,
+ write_io_chart(NETDATA_MEM_SWAP_CHART, NETDATA_EBPF_MEMORY_GROUP,
swap_publish_aggregated[NETDATA_KEY_SWAP_WRITEPAGE_CALL].dimension,
(long long) swap_hash_values[NETDATA_KEY_SWAP_WRITEPAGE_CALL],
swap_publish_aggregated[NETDATA_KEY_SWAP_READPAGE_CALL].dimension,
@@ -519,26 +519,24 @@ static void swap_send_global()
*
* Read the table with number of calls to all functions
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_swap_read_global_table(int maps_per_core)
-{
- netdata_idx_t *stored = swap_values;
- netdata_idx_t *val = swap_hash_values;
- int fd = swap_maps[NETDATA_SWAP_GLOBAL_TABLE].map_fd;
-
- uint32_t i, end = NETDATA_SWAP_END;
- for (i = NETDATA_KEY_SWAP_READPAGE_CALL; i < end; i++) {
- if (!bpf_map_lookup_elem(fd, &i, stored)) {
- int j;
- int last = (maps_per_core) ? ebpf_nprocs : 1;
- netdata_idx_t total = 0;
- for (j = 0; j < last; j++)
- total += stored[j];
-
- val[i] = total;
- }
- }
+static void ebpf_swap_read_global_table(netdata_idx_t *stats, int maps_per_core)
+{
+ ebpf_read_global_table_stats(swap_hash_values,
+ swap_values,
+ swap_maps[NETDATA_SWAP_GLOBAL_TABLE].map_fd,
+ maps_per_core,
+ NETDATA_KEY_SWAP_READPAGE_CALL,
+ NETDATA_SWAP_END);
+
+ ebpf_read_global_table_stats(stats,
+ swap_values,
+ swap_maps[NETDATA_SWAP_CONTROLLER].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
}
/**
@@ -804,6 +802,8 @@ static void swap_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
if (ebpf_exit_plugin || ++counter != update_every)
@@ -811,7 +811,7 @@ static void swap_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_swap_read_global_table(maps_per_core);
+ ebpf_swap_read_global_table(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps)
read_swap_apps_table(maps_per_core);
@@ -914,12 +914,12 @@ static void ebpf_swap_allocate_global_vectors(int apps)
*/
static void ebpf_create_swap_charts(int update_every)
{
- ebpf_create_chart(NETDATA_EBPF_SYSTEM_GROUP, NETDATA_MEM_SWAP_CHART,
+ ebpf_create_chart(NETDATA_EBPF_MEMORY_GROUP, NETDATA_MEM_SWAP_CHART,
"Calls to access swap memory",
EBPF_COMMON_DIMENSION_CALL, NETDATA_SYSTEM_SWAP_SUBMENU,
NULL,
NETDATA_EBPF_CHART_TYPE_LINE,
- NETDATA_CHART_PRIO_SYSTEM_SWAP_CALLS,
+ NETDATA_CHART_PRIO_MEM_SWAP_CALLS,
ebpf_create_global_dimension,
swap_publish_aggregated, NETDATA_SWAP_END,
update_every, NETDATA_EBPF_MODULE_NAME_SWAP);
diff --git a/collectors/ebpf.plugin/ebpf_vfs.c b/collectors/ebpf.plugin/ebpf_vfs.c
index 5747a2408..e566e169d 100644
--- a/collectors/ebpf.plugin/ebpf_vfs.c
+++ b/collectors/ebpf.plugin/ebpf_vfs.c
@@ -964,30 +964,25 @@ static void ebpf_vfs_send_data(ebpf_module_t *em)
/**
* Read the hash table and store data to allocated vectors.
*
+ * @param stats vector used to read data from control table.
* @param maps_per_core do I need to read all cores?
*/
-static void ebpf_vfs_read_global_table(int maps_per_core)
+static void ebpf_vfs_read_global_table(netdata_idx_t *stats, int maps_per_core)
{
- uint64_t idx;
netdata_idx_t res[NETDATA_VFS_COUNTER];
-
- netdata_idx_t *val = vfs_hash_values;
- size_t length = sizeof(netdata_idx_t);
- if (maps_per_core)
- length *= ebpf_nprocs;
-
- int fd = vfs_maps[NETDATA_VFS_ALL].map_fd;
- for (idx = 0; idx < NETDATA_VFS_COUNTER; idx++) {
- uint64_t total = 0;
- if (!bpf_map_lookup_elem(fd, &idx, val)) {
- int i;
- int end = (maps_per_core) ? ebpf_nprocs : 1;
- for (i = 0; i < end; i++)
- total += val[i];
- }
- res[idx] = total;
- memset(val, 0, length);
- }
+ ebpf_read_global_table_stats(res,
+ vfs_hash_values,
+ vfs_maps[NETDATA_VFS_ALL].map_fd,
+ maps_per_core,
+ NETDATA_KEY_CALLS_VFS_WRITE,
+ NETDATA_VFS_COUNTER);
+
+ ebpf_read_global_table_stats(stats,
+ vfs_hash_values,
+ vfs_maps[NETDATA_VFS_CTRL].map_fd,
+ maps_per_core,
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_END);
vfs_publish_aggregated[NETDATA_KEY_PUBLISH_VFS_UNLINK].ncall = res[NETDATA_KEY_CALLS_VFS_UNLINK];
vfs_publish_aggregated[NETDATA_KEY_PUBLISH_VFS_READ].ncall = res[NETDATA_KEY_CALLS_VFS_READ] +
@@ -1963,6 +1958,8 @@ static void vfs_collector(ebpf_module_t *em)
int maps_per_core = em->maps_per_core;
uint32_t running_time = 0;
uint32_t lifetime = em->lifetime;
+ netdata_idx_t *stats = em->hash_table_stats;
+ memset(stats, 0, sizeof(em->hash_table_stats));
while (!ebpf_exit_plugin && running_time < lifetime) {
(void)heartbeat_next(&hb, USEC_PER_SEC);
if (ebpf_exit_plugin || ++counter != update_every)
@@ -1970,7 +1967,7 @@ static void vfs_collector(ebpf_module_t *em)
counter = 0;
netdata_apps_integration_flags_t apps = em->apps_charts;
- ebpf_vfs_read_global_table(maps_per_core);
+ ebpf_vfs_read_global_table(stats, maps_per_core);
pthread_mutex_lock(&collect_data_mutex);
if (apps)
ebpf_vfs_read_apps(maps_per_core);
diff --git a/collectors/ebpf.plugin/metadata.yaml b/collectors/ebpf.plugin/metadata.yaml
new file mode 100644
index 000000000..232326778
--- /dev/null
+++ b/collectors/ebpf.plugin/metadata.yaml
@@ -0,0 +1,3308 @@
+plugin_name: ebpf.plugin
+modules:
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: filedescriptor
+ monitored_instance:
+ name: eBPF Filedescriptor
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - file
+ - eBPF
+ - fd
+ - open
+ - close
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor calls for functions responsible to open or close a file descriptor and possible errors."
+ method_description: "Attach tracing (kprobe and trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netdata sets necessary permissions during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "Depending of kernel version and frequency that files are open and close, this thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/fd.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: cgroup.fd_open
+ description: Number of open files
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: cgroup.fd_open_error
+ description: Fails to open files
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: cgroup.fd_closed
+ description: Files closed
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: close
+ - name: cgroup.fd_close_error
+ description: Fails to close files
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: close
+ - name: services.file_open
+ description: Number of open files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.file_open_error
+ description: Fails to open files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.file_closed
+ description: Files closed
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.file_close_error
+ description: Fails to close files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: filesystem.file_descriptor
+ description: Open and close calls
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: close
+ - name: filesystem.file_error
+ description: Open fails
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: close
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.file_open
+ description: Number of open files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.file_open_error
+ description: Fails to open files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.file_closed
+ description: Files closed
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.file_close_error
+ description: Fails to close files
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: processes
+ monitored_instance:
+ name: eBPF Processes
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - thread
+ - fork
+ - process
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor calls for function creating tasks (threads and processes) inside Linux kernel."
+ method_description: "Attach tracing (kprobe or tracepoint, and trampoline) to internal kernel functions."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).
+ configuration:
+ file:
+ name: "ebpf.d/process.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). This plugin will always try to attach a tracepoint, so option here will impact only function used to monitor task (thread and process) creation."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: system.process_thread
+ description: Start process
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: system.process_status
+ description: Process not closed
+ unit: "difference"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: zombie
+ - name: system.exit
+ description: Exit process
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: system.task_error
+ description: Fails to create process
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: task
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.process_create
+ description: Process started
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.thread_create
+ description: Threads started
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.task_exit
+ description: Tasks starts exit process
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.task_close
+ description: Tasks closed
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.task_error
+ description: Errors to create process or threads
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: cgroup
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: cgroup.process_create
+ description: Process started
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: cgroup.thread_create
+ description: Threads started
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: thread
+ - name: cgroup.task_exit
+ description: Tasks starts exit process
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: exit
+ - name: cgroup.task_close
+ description: Tasks closed
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: cgroup.task_error
+ description: Errors to create process or threads
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: process
+ - name: services.process_create
+ description: Process started
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.thread_create
+ description: Threads started
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.task_close
+ description: Tasks starts exit process
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.task_exit
+ description: Tasks closed
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.task_error
+ description: Errors to create process or threads
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: disk
+ monitored_instance:
+ name: eBPF Disk
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - hard Disk
+ - eBPF
+ - latency
+ - partition
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Measure latency for I/O events on disk."
+ method_description: "Attach tracepoints to internal kernel functions."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`
+ configuration:
+ file:
+ name: "ebpf.d/disk.conf"
+ description: "Overwrite default configuration reducing number of I/O events."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: disk
+ description: "These metrics measure latency for I/O events on every hard disk present on host."
+ labels: []
+ metrics:
+ - name: disk.latency_io
+ description: Disk latency
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: hardirq
+ monitored_instance:
+ name: eBPF Hardirq
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - HardIRQ
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor latency for each HardIRQ available."
+ method_description: "Attach tracepoints to internal kernel functions."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).
+ configuration:
+ file:
+ name: "ebpf.d/hardirq.conf"
+ description: "Overwrite default configuration reducing number of I/O events."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show latest timestamp for each hardIRQ available on host."
+ labels: []
+ metrics:
+ - name: system.hardirq_latency
+ description: Hard IRQ latency
+ unit: "milliseconds"
+ chart_type: stacked
+ dimensions:
+ - name: hardirq names
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: cachestat
+ monitored_instance:
+ name: eBPF Cachestat
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - Page cache
+ - Hit ratio
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Linux page cache events giving for users a general vision about how his kernel is manipulating files."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/cachestat.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: mem.cachestat_ratio
+ description: Hit ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: ratio
+ - name: mem.cachestat_dirties
+ description: Number of dirty pages
+ unit: "page/s"
+ chart_type: line
+ dimensions:
+ - name: dirty
+ - name: mem.cachestat_hits
+ description: Number of accessed files
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hit
+ - name: mem.cachestat_misses
+ description: Files out of page cache
+ unit: "misses/s"
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.cachestat_ratio
+ description: Hit ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cachestat_dirties
+ description: Number of dirty pages
+ unit: "page/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cachestat_hits
+ description: Number of accessed files
+ unit: "hits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.cachestat_misses
+ description: Files out of page cache
+ unit: "misses/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: cgroup
+ description: ""
+ labels: []
+ metrics:
+ - name: cgroup.cachestat_ratio
+ description: Hit ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: ratio
+ - name: cgroup.cachestat_dirties
+ description: Number of dirty pages
+ unit: "page/s"
+ chart_type: line
+ dimensions:
+ - name: dirty
+ - name: cgroup.cachestat_hits
+ description: Number of accessed files
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hit
+ - name: cgroup.cachestat_misses
+ description: Files out of page cache
+ unit: "misses/s"
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: services.cachestat_ratio
+ description: Hit ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.cachestat_dirties
+ description: Number of dirty pages
+ unit: "page/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.cachestat_hits
+ description: Number of accessed files
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.cachestat_misses
+ description: Files out of page cache
+ unit: "misses/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: sync
+ monitored_instance:
+ name: eBPF Sync
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - syscall
+ - eBPF
+ - hard disk
+ - memory
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor syscall responsible to move data from memory to storage device."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug`).
+ configuration:
+ file:
+ name: "ebpf.d/sync.conf"
+ description: "Overwrite default configuration and allows user to select charts visible on dashboard."
+ options:
+ description: |
+ This configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ - name: sync
+ description: Enable or disable monitoring for syscall `sync`
+ default_value: yes
+ required: false
+ - name: msync
+ description: Enable or disable monitoring for syscall `msync`
+ default_value: yes
+ required: false
+ - name: fsync
+ description: Enable or disable monitoring for syscall `fsync`
+ default_value: yes
+ required: false
+ - name: fdatasync
+ description: Enable or disable monitoring for syscall `fdatasync`
+ default_value: yes
+ required: false
+ - name: syncfs
+ description: Enable or disable monitoring for syscall `syncfs`
+ default_value: yes
+ required: false
+ - name: sync_file_range
+ description: Enable or disable monitoring for syscall `sync_file_range`
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: sync_freq
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/synchronization.conf
+ metric: mem.sync
+ info:
+ number of sync() system calls. Every call causes all pending modifications to filesystem metadata and cached file data to be written to the
+ underlying filesystems.
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: mem.file_sync
+ description: Monitor calls for fsync(2)
and fdatasync(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: fsync
+ - name: fdatasync
+ - name: mem.meory_map
+ description: Monitor calls for msync(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: msync
+ - name: mem.sync
+ description: Monitor calls for sync(2)
and syncfs(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: sync
+ - name: syncfs
+ - name: mem.file_segment
+ description: Monitor calls for sync_file_range(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: sync_file_range
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: mdflush
+ monitored_instance:
+ name: eBPF MDflush
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - MD
+ - RAID
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor when flush events happen between disks."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that `md_flush_request` is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/mdflush.conf"
+ description: "Overwrite default configuration reducing I/O events."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "Number of times md_flush_request was called since last time."
+ labels: []
+ metrics:
+ - name: mdstat.mdstat_flush
+ description: MD flushes
+ unit: "flushes"
+ chart_type: stacked
+ dimensions:
+ - name: disk
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: swap
+ monitored_instance:
+ name: eBPF SWAP
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - SWAP
+ - memory
+ - eBPF
+ - Hard Disk
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitors when swap has I/O events and applications executing events."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/swap.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: cgroup.swap_read
+ description: Calls to function swap_readpage
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: cgroup.swap_write
+ description: Calls to function swap_writepage
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: services.swap_read
+ description: Calls to swap_readpage
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.swap_write
+ description: Calls to function swap_writepage
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.swap_read_call
+ description: Calls to function swap_readpage
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.swap_write_call
+ description: Calls to function swap_writepage
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: mem.swapcalls
+ description: Calls to access swap memory
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: read
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: oomkill
+ monitored_instance:
+ name: eBPF OOMkill
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - application
+ - memory
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor applications that reach out of memory."
+ method_description: "Attach tracepoint to internal kernel functions."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).
+ configuration:
+ file:
+ name: "ebpf.d/oomkill.conf"
+ description: "Overwrite default configuration reducing number of I/O events."
+ options:
+ description: |
+ Overwrite default configuration reducing number of I/O events
+ folding:
+ title: "Config options"
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: "These metrics show cgroup/service that reached OOM."
+ labels: []
+ metrics:
+ - name: cgroup.oomkills
+ description: OOM kills. This chart is provided by eBPF plugin.
+ unit: "kills"
+ chart_type: line
+ dimensions:
+ - name: cgroup name
+ - name: services.oomkills
+ description: OOM kills. This chart is provided by eBPF plugin.
+ unit: "kills"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: apps
+ description: "These metrics show cgroup/service that reached OOM."
+ labels: []
+ metrics:
+ - name: apps.oomkills
+ description: OOM kills
+ unit: "kills"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: socket
+ monitored_instance:
+ name: eBPF Socket
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - TCP
+ - UDP
+ - bandwidth
+ - server
+ - connection
+ - socket
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor bandwidth consumption per application for protocols TCP and UDP."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/network.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`. Options inside `network connections` are ignored for while.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: bandwidth table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 16384
+ required: false
+ - name: ipv4 connection table size
+ description: Number of elements stored inside hash tables used to monitor calls per IPV4 connections.
+ default_value: 16384
+ required: false
+ - name: ipv6 connection table size
+ description: Number of elements stored inside hash tables used to monitor calls per IPV6 connections.
+ default_value: 16384
+ required: false
+ - name: udp connection table size
+ description: Number of temporary elements stored inside hash tables used to monitor UDP connections.
+ default_value: 4096
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: ip.inbound_conn
+ description: Inbound connections.
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: connection_tcp
+ - name: ip.tcp_outbound_conn
+ description: TCP outbound connections.
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: ip.tcp_functions
+ description: Calls to internal functions
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: closed
+ - name: ip.total_tcp_bandwidth
+ description: TCP bandwidth
+ unit: "kilobits/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: ip.tcp_error
+ description: TCP errors
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: ip.tcp_retransmit
+ description: Packages retransmitted
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: retransmited
+ - name: ip.udp_functions
+ description: UDP calls
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: ip.total_udp_bandwidth
+ description: UDP bandwidth
+ unit: "kilobits/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: ip.udp_error
+ description: UDP errors
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: send
+ - name: apps
+ description: "These metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.outbound_conn_v4
+ description: Calls to tcp_v4_connection
+ unit: "connections/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.outbound_conn_v6
+ description: Calls to tcp_v6_connection
+ unit: "connections/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.total_bandwidth_sent
+ description: Bytes sent
+ unit: "kilobits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.total_bandwidth_recv
+ description: bytes received
+ unit: "kilobits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.bandwidth_tcp_send
+ description: Calls for tcp_sendmsg
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.bandwidth_tcp_recv
+ description: Calls for tcp_cleanup_rbuf
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.bandwidth_tcp_retransmit
+ description: Calls for tcp_retransmit
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.bandwidth_udp_send
+ description: Calls for udp_sendmsg
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.bandwidth_udp_recv
+ description: Calls for udp_recvmsg
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: services.net_conn_ipv4
+ description: Calls to tcp_v4_connection
+ unit: "connections/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: cgroup
+ description: ""
+ labels: []
+ metrics:
+ - name: cgroup.net_conn_ipv4
+ description: Calls to tcp_v4_connection
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: connected_v4
+ - name: cgroup.net_conn_ipv6
+ description: Calls to tcp_v6_connection
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: connected_v6
+ - name: cgroup.net_bytes_recv
+ description: Bytes received
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: cgroup.net_bytes_sent
+ description: Bytes sent
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: cgroup.net_tcp_recv
+ description: Calls to tcp_cleanup_rbuf.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: cgroup.net_tcp_send
+ description: Calls to tcp_sendmsg.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: cgroup.net_retransmit
+ description: Calls to tcp_retransmit.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: retransmitted
+ - name: cgroup.net_udp_send
+ description: Calls to udp_sendmsg
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: cgroup.net_udp_recv
+ description: Calls to udp_recvmsg
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: services.net_conn_ipv6
+ description: Calls to tcp_v6_connection
+ unit: "connections/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_bytes_recv
+ description: Bytes received
+ unit: "kilobits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_bytes_sent
+ description: Bytes sent
+ unit: "kilobits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_tcp_recv
+ description: Calls to tcp_cleanup_rbuf.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_tcp_send
+ description: Calls to tcp_sendmsg.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_tcp_retransmit
+ description: Calls to tcp_retransmit
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_udp_send
+ description: Calls to udp_sendmsg
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.net_udp_recv
+ description: Calls to udp_recvmsg
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: dcstat
+ monitored_instance:
+ name: eBPF DCstat
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - Directory Cache
+ - File system
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor directory cache events per application given an overall vision about files on memory or storage device."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/dcstat.conf"
+ description: "Overwrite default configuration helping to reduce memory usage. You can also select charts visible on dashboard."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config option"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.dc_ratio
+ description: Percentage of files inside directory cache
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.dc_reference
+ description: Count file access
+ unit: "files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.dc_not_cache
+ description: Files not present inside directory cache
+ unit: "files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.dc_not_found
+ description: Files not found
+ unit: "files"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: filesystem
+ description: "These metrics show total number of calls to functions inside kernel."
+ labels: []
+ metrics:
+ - name: filesystem.dc_reference
+ description: Variables used to calculate hit ratio.
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: reference
+ - name: slow
+ - name: miss
+ - name: filesystem.dc_hit_ratio
+ description: Percentage of files inside directory cache
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: ratio
+ - name: cgroup
+ description: ""
+ labels: []
+ metrics:
+ - name: cgroup.dc_ratio
+ description: Percentage of files inside directory cache
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: ratio
+ - name: cgroup.dc_reference
+ description: Count file access
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: reference
+ - name: cgroup.dc_not_cache
+ description: Files not present inside directory cache
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: slow
+ - name: cgroup.dc_not_found
+ description: Files not found
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: miss
+ - name: services.dc_ratio
+ description: Percentage of files inside directory cache
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.dc_reference
+ description: Count file access
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.dc_not_cache
+ description: Files not present inside directory cache
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.dc_not_found
+ description: Files not found
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: a dimension per systemd service
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: filesystem
+ monitored_instance:
+ name: eBPF Filesystem
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - Filesystem
+ - ext4
+ - btrfs
+ - nfs
+ - xfs
+ - zfs
+ - eBPF
+ - latency
+ - I/O
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor latency for main actions on filesystem like I/O events."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/filesystem.conf"
+ description: "Overwrite default configuration and allows user to select charts visible on dashboard."
+ options:
+ description: |
+ This configuration file have two different sections. The `[global]` overwrites default options, while `[filesystem]` allow user to select the filesystems to monitor.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ - name: btrfsdist
+ description: Enable or disable latency monitoring for functions associated with btrfs filesystem.
+ default_value: yes
+ required: false
+ - name: ext4dist
+ description: Enable or disable latency monitoring for functions associated with ext4 filesystem.
+ default_value: yes
+ required: false
+ - name: nfsdist
+ description: Enable or disable latency monitoring for functions associated with nfs filesystem.
+ default_value: yes
+ required: false
+ - name: xfsdist
+ description: Enable or disable latency monitoring for functions associated with xfs filesystem.
+ default_value: yes
+ required: false
+ - name: zfsdist
+ description: Enable or disable latency monitoring for functions associated with zfs filesystem.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: filesystem
+ description: "Latency charts associate with filesystem actions."
+ labels: []
+ metrics:
+ - name: filesystem.read_latency
+ description: ext4 latency for each read request.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency period
+ - name: filesystem.open_latency
+ description: ext4 latency for each open request.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency period
+ - name: filesystem.sync_latency
+ description: ext4 latency for each sync request.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency period
+ - name: iilesystem
+ description: ""
+ labels: []
+ metrics:
+ - name: filesystem.write_latency
+ description: ext4 latency for each write request.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency period
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: filesystem.attributte_latency
+ description: nfs latency for each attribute request.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: latency period
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: shm
+ monitored_instance:
+ name: eBPF SHM
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - syscall
+ - shared memory
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor syscall responsible to manipulate shared memory."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`
+ configuration:
+ file:
+ name: "ebpf.d/shm.conf"
+ description: "Overwrite default configuration and allows user to select charts visible on dashboard."
+ options:
+ description: |
+ This configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ - name: shmget
+ description: Enable or disable monitoring for syscall `shmget`
+ default_value: yes
+ required: false
+ - name: shmat
+ description: Enable or disable monitoring for syscall `shmat`
+ default_value: yes
+ required: false
+ - name: shmdt
+ description: Enable or disable monitoring for syscall `shmdt`
+ default_value: yes
+ required: false
+ - name: shmctl
+ description: Enable or disable monitoring for syscall `shmctl`
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: cgroup.shmget
+ description: Calls to syscall shmget(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: get
+ - name: cgroup.shmat
+ description: Calls to syscall shmat(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: at
+ - name: cgroup.shmdt
+ description: Calls to syscall shmdt(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: dt
+ - name: cgroup.shmctl
+ description: Calls to syscall shmctl(2)
.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: ctl
+ - name: services.shmget
+ description: Calls to syscall shmget(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.shmat
+ description: Calls to syscall shmat(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.shmdt
+ description: Calls to syscall shmdt(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.shmctl
+ description: Calls to syscall shmctl(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.shmget_call
+ description: Calls to syscall shmget(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.shmat_call
+ description: Calls to syscall shmat(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.shmdt_call
+ description: Calls to syscall shmdt(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.shmctl_call
+ description: Calls to syscall shmctl(2)
.
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: global
+ description: "These Metrics show number of calls for specified syscall."
+ labels: []
+ metrics:
+ - name: system.shared_memory_calls
+ description: Calls to shared memory system calls
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: get
+ - name: at
+ - name: dt
+ - name: ctl
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: softirq
+ monitored_instance:
+ name: eBPF SoftIRQ
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - SoftIRQ
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor latency for each SoftIRQ available."
+ method_description: "Attach kprobe to internal kernel functions."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`
+ configuration:
+ file:
+ name: "ebpf.d/softirq.conf"
+ description: "Overwrite default configuration reducing number of I/O events."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show latest timestamp for each softIRQ available on host."
+ labels: []
+ metrics:
+ - name: system.softirq_latency
+ description: Soft IRQ latency
+ unit: "milliseconds"
+ chart_type: stacked
+ dimensions:
+ - name: soft IRQs
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: mount
+ monitored_instance:
+ name: eBPF Mount
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - mount
+ - umount
+ - device
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor calls for mount and umount syscall."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ - title: Debug Filesystem
+ description: |
+ This thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`
+ configuration:
+ file:
+ name: "ebpf.d/mount.conf"
+ description: "Overwrite default configuration."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "Calls for syscalls mount an umount."
+ labels: []
+ metrics:
+ - name: mount_points.call
+ description: Calls to mount and umount syscalls
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: mount
+ - name: umount
+ - name: mount_points.error
+ description: Errors to mount and umount file systems
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: mount
+ - name: umount
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: vfs
+ monitored_instance:
+ name: eBPF VFS
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list:
+ - plugin_name: apps.plugin
+ module_name: apps
+ - plugin_name: cgroups.plugin
+ module_name: cgroups
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - virtual
+ - filesystem
+ - eBPF
+ - I/O
+ - files
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor I/O events on Linux Virtual Filesystem."
+ method_description: "Attach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: "The plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached."
+ limits:
+ description: ""
+ performance_impact:
+ description: "This thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology."
+ setup:
+ prerequisites:
+ list:
+ - title: Compile kernel
+ description: |
+ Check if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.
+ When you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files
+ with different names.
+
+ Now follow steps:
+ 1. Copy the configuration file to /usr/src/linux/.config.
+ 2. Select the necessary options: make oldconfig
+ 3. Compile your kernel image: make bzImage
+ 4. Compile your modules: make modules
+ 5. Copy your new kernel image for boot loader directory
+ 6. Install the new modules: make modules_install
+ 7. Generate an initial ramdisk image (`initrd`) if it is necessary.
+ 8. Update your boot loader
+ configuration:
+ file:
+ name: "ebpf.d/vfs.conf"
+ description: "Overwrite default configuration helping to reduce memory usage."
+ options:
+ description: |
+ All options are defined inside section `[global]`.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 5
+ required: false
+ - name: ebpf load mode
+ description: Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`).
+ default_value: entry
+ required: false
+ - name: apps
+ description: Enable or disable integration with apps.plugin
+ default_value: no
+ required: false
+ - name: cgroups
+ description: Enable or disable integration with cgroup.plugin
+ default_value: no
+ required: false
+ - name: pid table size
+ description: Number of elements stored inside hash tables used to monitor calls per PID.
+ default_value: 32768
+ required: false
+ - name: ebpf type format
+ description: "Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load)."
+ default_value: auto
+ required: false
+ - name: ebpf co-re tracing
+ description: "Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code)."
+ default_value: trampoline
+ required: false
+ - name: maps per core
+ description: Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information.
+ default_value: yes
+ required: false
+ - name: lifetime
+ description: Set default lifetime for thread when enabled by cloud.
+ default_value: 300
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: cgroup
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: cgroup.vfs_unlink
+ description: Files deleted
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: delete
+ - name: cgroup.vfs_write
+ description: Write to disk
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: cgroup.vfs_write_error
+ description: Fails to write
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: cgroup.vfs_read
+ description: Read from disk
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: cgroup.vfs_read_error
+ description: Fails to read
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: cgroup.vfs_write_bytes
+ description: Bytes written on disk
+ unit: "bytes/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: cgroup.vfs_read_bytes
+ description: Bytes read from disk
+ unit: "bytes/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: cgroup.vfs_fsync
+ description: Calls for vfs_fsync
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: fsync
+ - name: cgroup.vfs_fsync_error
+ description: Sync error
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: fsync
+ - name: cgroup.vfs_open
+ description: Calls for vfs_open
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: cgroup.vfs_open_error
+ description: Open error
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: cgroup.vfs_create
+ description: Calls for vfs_create
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: create
+ - name: cgroup.vfs_create_error
+ description: Create error
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: create
+ - name: services.vfs_unlink
+ description: Files deleted
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_write
+ description: Write to disk
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_write_error
+ description: Fails to write
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_read
+ description: Read from disk
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_read_error
+ description: Fails to read
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_write_bytes
+ description: Bytes written on disk
+ unit: "bytes/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_read_bytes
+ description: Bytes read from disk
+ unit: "bytes/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_fsync
+ description: Calls to vfs_fsync
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_fsync_error
+ description: Sync error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_open
+ description: Calls to vfs_open
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_open_error
+ description: Open error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_create
+ description: Calls to vfs_create
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: services.vfs_create_error
+ description: Create error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per systemd service
+ - name: global
+ description: "These Metrics show grouped information per cgroup/service."
+ labels: []
+ metrics:
+ - name: filesystem.vfs_deleted_objects
+ description: Remove files
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: delete
+ - name: filesystem.vfs_io
+ description: Calls to IO
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: filesystem.vfs_io_bytes
+ description: Bytes written and read
+ unit: "bytes/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: filesystem.vfs_io_error
+ description: Fails to write or read
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: filesystem.vfs_fsync
+ description: Calls for vfs_fsync
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: fsync
+ - name: filesystem.vfs_fsync_error
+ description: Fails to synchronize
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: fsync
+ - name: filesystem.vfs_open
+ description: Calls for vfs_open
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: filesystem.vfs_open_error
+ description: Fails to open a file
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: open
+ - name: filesystem.vfs_create
+ description: Calls for vfs_create
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: create
+ - name: filesystem.vfs_create_error
+ description: Fails to create a file.
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: create
+ - name: apps
+ description: "These Metrics show grouped information per apps group."
+ labels: []
+ metrics:
+ - name: apps.file_deleted
+ description: Files deleted
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_write_call
+ description: Write to disk
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_write_error
+ description: Fails to write
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_read_call
+ description: Read from disk
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_read_error
+ description: Fails to read
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_write_bytes
+ description: Bytes written on disk
+ unit: "bytes/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_read_bytes
+ description: Bytes read on disk
+ unit: "bytes/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_fsync
+ description: Calls for vfs_fsync
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_fsync_error
+ description: Sync error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_open
+ description: Calls for vfs_open
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_open_error
+ description: Open error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_create
+ description: Calls for vfs_create
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - name: apps.vfs_create_error
+ description: Create error
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per app group
+ - meta:
+ plugin_name: ebpf.plugin
+ module_name: process
+ monitored_instance:
+ name: eBPF Process
+ link: "https://github.com/netdata/netdata/"
+ categories:
+ - data-collection.ebpf
+ icon_filename: "ebpf.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - Memory
+ - plugin
+ - eBPF
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor internal memory usage."
+ method_description: "Uses netdata internal statistic to monitor memory management by plugin."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Netdata flags.
+ description: "To have these charts you need to compile netdata with flag `NETDATA_DEV_MODE`."
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "How plugin is allocating memory."
+ labels: []
+ metrics:
+ - name: netdata.ebpf_aral_stat_size
+ description: Bytes allocated for ARAL.
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: memory
+ - name: netdata.ebpf_aral_stat_alloc
+ description: Calls to allocate memory.
+ unit: "calls"
+ chart_type: stacked
+ dimensions:
+ - name: aral
+ - name: netdata.ebpf_threads
+ description: Threads info
+ unit: "threads"
+ chart_type: line
+ dimensions:
+ - name: total
+ - name: running
+ - name: netdata.ebpf_load_methods
+ description: Load info
+ unit: "methods"
+ chart_type: line
+ dimensions:
+ - name: legacy
+ - name: co-re
+ - name: netdata.ebpf_kernel_memory
+ description: Memory allocated for hash tables.
+ unit: "bytes"
+ chart_type: line
+ dimensions:
+ - name: memory_locked
+ - name: netdata.ebpf_hash_tables_count
+ description: Number of hash tables loaded
+ unit: "hash tables"
+ chart_type: line
+ dimensions:
+ - name: hash_table
+ - name: netdata.ebpf_aral_stat_size
+ description: Bytes allocated for ARAL
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: memory
+ - name: netdata.ebpf_aral_stat_alloc
+ description: Calls to allocate memory
+ unit: "calls"
+ chart_type: stacked
+ dimensions:
+ - name: aral
+ - name: netdata.ebpf_aral_stat_size
+ description: Bytes allocated for ARAL.
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: memory
+ - name: netdata.ebpf_aral_stat_alloc
+ description: Calls to allocate memory
+ unit: "calls"
+ chart_type: stacked
+ dimensions:
+ - name: aral
+ - name: netdata.ebpf_hash_tables_insert_pid_elements
+ description: Number of times an element was inserted in a hash table.
+ unit: "rows"
+ chart_type: line
+ dimensions:
+ - name: thread
+ - name: netdata.ebpf_hash_tables_remove_pid_elements
+ description: Number of times an element was removed in a hash table.
+ unit: "rows"
+ chart_type: line
+ dimensions:
+ - name: thread
diff --git a/collectors/ebpf.plugin/metrics.csv b/collectors/ebpf.plugin/metrics.csv
deleted file mode 100644
index 5714c9767..000000000
--- a/collectors/ebpf.plugin/metrics.csv
+++ /dev/null
@@ -1,197 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-cgroup.fd_open,cgroup,open,calls/s,Number of open files,line,,ebpf.plugin,filedescriptor
-cgroup.fd_open_error,cgroup,open,calls/s,Fails to open files,line,,ebpf.plugin,filedescriptor
-cgroup.fd_closed,cgroup,close,calls/s,Files closed,line,,ebpf.plugin,filedescriptor
-cgroup.fd_close_error,cgroup,close,calls/s,Fails to close files,line,,ebpf.plugin,filedescriptor
-services.file_open,,a dimension per systemd service,calls/s,Number of open files,stacked,,ebpf.plugin,filedescriptor
-services.file_open_error,,a dimension per systemd service,calls/s,Fails to open files,stacked,,ebpf.plugin,filedescriptor
-services.file_closed,,a dimension per systemd service,calls/s,Files closed,stacked,,ebpf.plugin,filedescriptor
-services.file_close_error,,a dimension per systemd service,calls/s,Fails to close files,stacked,,ebpf.plugin,filedescriptor
-apps.file_open,,a dimension per app group,calls/s,Number of open files,stacked,,ebpf.plugin,filedescriptor
-apps.file_open_error,,a dimension per app group,calls/s,Fails to open files,stacked,,ebpf.plugin,filedescriptor
-apps.file_closed,,a dimension per app group,calls/s,Files closed,stacked,,ebpf.plugin,filedescriptor
-apps.file_close_error,,a dimension per app group,calls/s,Fails to close files,stacked,,ebpf.plugin,filedescriptor
-filesystem.file_descriptor,,"open, close",calls/s,Open and close calls,line,,ebpf.plugin,filedescriptor
-filesystem.file_error,,"open, close",calls/s,Open fails,line,,ebpf.plugin,filedescriptor
-system.process_thread,,process,calls/s,Start process,line,,ebpf.plugin,processes
-system.process_status,,"process, zombie",difference,Process not closed,line,,ebpf.plugin,processes
-system.exit,,process,calls/s,Exit process,line,,ebpf.plugin,processes
-system.task_error,,task,calls/s,Fails to create process,line,,ebpf.plugin,processes
-apps.process_create,,a dimension per app group,calls/s,Process started,stacked,,ebpf.plugin,processes
-apps.thread_create,,a dimension per app group,calls/s,Threads started,stacked,,ebpf.plugin,processes
-apps.task_exit,,a dimension per app group,calls/s,Tasks starts exit process,stacked,,ebpf.plugin,processes
-apps.task_close,,a dimension per app group,calls/s,Tasks closed,stacked,,ebpf.plugin,processes
-apps.task_error,,a dimension per app group,calls/s,Errors to create process or threads,stacked,,ebpf.plugin,processes
-cgroup.process_create,cgroup,process,calls/s,Process started,line,,ebpf.plugin,processes
-cgroup.thread_create,cgroup,thread,calls/s,Threads started,line,,ebpf.plugin,processes
-cgroup.task_exit,cgroup,exit,calls/s,Tasks starts exit process,line,,ebpf.plugin,processes
-cgroup.task_close,cgroup,process,calls/s,Tasks closed,line,,ebpf.plugin,processes
-cgroup.task_error,cgroup,process,calls/s,Errors to create process or threads,line,,ebpf.plugin,processes
-services.process_create,cgroup,a dimension per systemd service,calls/s,Process started,stacked,,ebpf.plugin,processes
-services.thread_create,cgroup,a dimension per systemd service,calls/s,Threads started,stacked,,ebpf.plugin,processes
-services.task_close,cgroup,a dimension per systemd service,calls/s,Tasks starts exit process,stacked,,ebpf.plugin,processes
-services.task_exit,cgroup,a dimension per systemd service,calls/s,Tasks closed,stacked,,ebpf.plugin,processes
-services.task_error,cgroup,a dimension per systemd service,calls/s,Errors to create process or threads,stacked,,ebpf.plugin,processes
-disk.latency_io,disk,latency,calls/s,Disk latency,stacked,,ebpf.plugin,disk
-system.hardirq_latency,,hardirq names,milisecondds,Hardware IRQ latency,stacked,,ebpf.plugin,hardirq
-apps.cachestat_ratio,,a dimension per app group,%,Hit ratio,line,,ebpf.plugin,cachestat
-apps.cachestat_dirties,,a dimension per app group,page/s,Number of dirty pages,stacked,,ebpf.plugin,cachestat
-apps.cachestat_hits,,a dimension per app group,hits/s,Number of accessed files,stacked,,ebpf.plugin,cachestat
-apps.cachestat_misses,,a dimension per app group,misses/s,Files out of page cache,stacked,,ebpf.plugin,cachestat
-services.cachestat_ratio,,a dimension per systemd service,%,Hit ratio,line,,ebpf.plugin,cachestat
-services.cachestat_dirties,,a dimension per systemd service,page/s,Number of dirty pages,line,,ebpf.plugin,cachestat
-services.cachestat_hits,,a dimension per systemd service,hits/s,Number of accessed files,line,,ebpf.plugin,cachestat
-services.cachestat_misses,,a dimension per systemd service,misses/s,Files out of page cache,line,,ebpf.plugin,cachestat
-cgroup.cachestat_ratio,cgroup,ratio,%,Hit ratio,line,,ebpf.plugin,cachestat
-cgroup.cachestat_dirties,cgroup,dirty,page/s,Number of dirty pages,line,,ebpf.plugin,cachestat
-cgroup.cachestat_hits,cgroup,hit,hits/s,Number of accessed files,line,,ebpf.plugin,cachestat
-cgroup.cachestat_misses,cgroup,miss,misses/s,Files out of page cache,line,,ebpf.plugin,cachestat
-mem.file_sync,,"fsync, fdatasync",calls/s,Monitor calls for fsync(2)
and fdatasync(2)
.,stacked,,ebpf.plugin,sync
-mem.meory_map,,msync,calls/s,Monitor calls for msync(2)
.,line,,ebpf.plugin,sync
-mem.sync,,"sync, syncfs",calls/s,Monitor calls for sync(2)
and syncfs(2)
.,line,,ebpf.plugin,sync
-mem.file_segment,,sync_file_range,calls/s,Monitor calls for sync_file_range(2)
.,line,,ebpf.plugin,sync
-mem.cachestat_ratio,,ratio,%,Hit ratio,line,,ebpf.plugin,cachestat
-mem.cachestat_dirties,,dirty,page/s,Number of dirty pages,line,,ebpf.plugin,cachestat
-mem.cachestat_hits,,hit,hits/s,Number of accessed files,line,,ebpf.plugin,cachestat
-mem.cachestat_misses,,miss,misses/s,Files out of page cache,line,,ebpf.plugin,cachestat
-mdstat.mdstat_flush,,disk,flushes,MD flushes,stacked,,ebpf.plugin,mdflush
-cgroup.swap_read,cgroup,read,calls/s,Calls to function swap_readpage
.,line,,ebpf.plugin,swap
-cgroup.swap_write,cgroup,write,calls/s,Calls to function swap_writepage
.,line,,ebpf.plugin,swap
-services.swap_read,,a dimension per systemd service,calls/s,Calls to swap_readpage
.,stacked,,ebpf.plugin,swap
-services.swap_write,,a dimension per systemd service,calls/s,Calls to function swap_writepage
.,stacked,,ebpf.plugin,swap
-apps.swap_read_call,,a dimension per app group,calls/s,Calls to function swap_readpage
.,stacked,,ebpf.plugin,swap
-apps.swap_write_call,,a dimension per app group,calls/s,Calls to function swap_writepage
.,stacked,,ebpf.plugin,swap
-system.swapcalls,,"write, read",calls/s,Calls to access swap memory,line,,ebpf.plugin,swap
-cgroup.oomkills,cgroup,cgroup name,kills,OOM kills. This chart is provided by eBPF plugin.,line,,ebpf.plugin,oomkill
-services.oomkills,,a dimension per systemd service,kills,OOM kills. This chart is provided by eBPF plugin.,line,,ebpf.plugin,oomkill
-apps.oomkills,,a dimension per app group,kills,OOM kills,stacked,,ebpf.plugin,oomkill
-ip.inbound_conn,,connection_tcp,connections/s,Inbound connections.,line,,ebpf.plugin,socket
-ip.tcp_outbound_conn,,received,connections/s,TCP outbound connections.,line,,ebpf.plugin,socket
-ip.tcp_functions,,"received, send, closed",calls/s,Calls to internal functions,line,,ebpf.plugin,socket
-ip.total_tcp_bandwidth,,"received, send",kilobits/s,TCP bandwidth,line,,ebpf.plugin,socket
-ip.tcp_error,,"received, send",calls/s,TCP errors,line,,ebpf.plugin,socket
-ip.tcp_retransmit,,retransmited,calls/s,Packages retransmitted,line,,ebpf.plugin,socket
-ip.udp_functions,,"received, send",calls/s,UDP calls,line,,ebpf.plugin,socket
-ip.total_udp_bandwidth,,"received, send",kilobits/s,UDP bandwidth,line,,ebpf.plugin,socket
-ip.udp_error,,"received, send",calls/s,UDP errors,line,,ebpf.plugin,socket
-apps.outbound_conn_v4,,a dimension per app group,connections/s,Calls to tcp_v4_connection,stacked,,ebpf.plugin,socket
-apps.outbound_conn_v6,,a dimension per app group,connections/s,Calls to tcp_v6_connection,stacked,,ebpf.plugin,socket
-apps.total_bandwidth_sent,,a dimension per app group,kilobits/s,Bytes sent,stacked,,ebpf.plugin,socket
-apps.total_bandwidth_recv,,a dimension per app group,kilobits/s,bytes received,stacked,,ebpf.plugin,socket
-apps.bandwidth_tcp_send,,a dimension per app group,calls/s,Calls for tcp_sendmsg,stacked,,ebpf.plugin,socket
-apps.bandwidth_tcp_recv,,a dimension per app group,calls/s,Calls for tcp_cleanup_rbuf,stacked,,ebpf.plugin,socket
-apps.bandwidth_tcp_retransmit,,a dimension per app group,calls/s,Calls for tcp_retransmit,stacked,,ebpf.plugin,socket
-apps.bandwidth_udp_send,,a dimension per app group,calls/s,Calls for udp_sendmsg,stacked,,ebpf.plugin,socket
-apps.bandwidth_udp_recv,,a dimension per app group,calls/s,Calls for udp_recvmsg,stacked,,ebpf.plugin,socket
-cgroup.net_conn_ipv4,cgroup,connected_v4,connections/s,Calls to tcp_v4_connection,line,,ebpf.plugin,socket
-cgroup.net_conn_ipv6,cgroup,connected_v6,connections/s,Calls to tcp_v6_connection,line,,ebpf.plugin,socket
-cgroup.net_bytes_recv,cgroup,received,calls/s,Bytes received,line,,ebpf.plugin,socket
-cgroup.net_bytes_sent,cgroup,sent,calls/s,Bytes sent,line,,ebpf.plugin,socket
-cgroup.net_tcp_recv,cgroup,received,calls/s,Calls to tcp_cleanup_rbuf.,line,,ebpf.plugin,socket
-cgroup.net_tcp_send,cgroup,sent,calls/s,Calls to tcp_sendmsg.,line,,ebpf.plugin,socket
-cgroup.net_retransmit,cgroup,retransmitted,calls/s,Calls to tcp_retransmit.,line,,ebpf.plugin,socket
-cgroup.net_udp_send,cgroup,sent,calls/s,Calls to udp_sendmsg,line,,ebpf.plugin,socket
-cgroup.net_udp_recv,cgroup,received,calls/s,Calls to udp_recvmsg,line,,ebpf.plugin,socket
-services.net_conn_ipv4,,a dimension per systemd service,connections/s,Calls to tcp_v4_connection,stacked,,ebpf.plugin,socket
-services.net_conn_ipv6,,a dimension per systemd service,connections/s,Calls to tcp_v6_connection,stacked,,ebpf.plugin,socket
-services.net_bytes_recv,,a dimension per systemd service,kilobits/s,Bytes received,stacked,,ebpf.plugin,socket
-services.net_bytes_sent,,a dimension per systemd service,kilobits/s,Bytes sent,stacked,,ebpf.plugin,socket
-services.net_tcp_recv,,a dimension per systemd service,calls/s,Calls to tcp_cleanup_rbuf.,stacked,,ebpf.plugin,socket
-services.net_tcp_send,,a dimension per systemd service,calls/s,Calls to tcp_sendmsg.,stacked,,ebpf.plugin,socket
-services.net_tcp_retransmit,,a dimension per systemd service,calls/s,Calls to tcp_retransmit,stacked,,ebpf.plugin,socket
-services.net_udp_send,,a dimension per systemd service,calls/s,Calls to udp_sendmsg,stacked,,ebpf.plugin,socket
-services.net_udp_recv,,a dimension per systemd service,calls/s,Calls to udp_recvmsg,stacked,,ebpf.plugin,socket
-apps.dc_ratio,,a dimension per app group,%,Percentage of files inside directory cache,line,,ebpf.plugin,dcstat
-apps.dc_reference,,a dimension per app group,files,Count file access,stacked,,ebpf.plugin,dcstat
-apps.dc_not_cache,,a dimension per app group,files,Files not present inside directory cache,stacked,,ebpf.plugin,dcstat
-apps.dc_not_found,,a dimension per app group,files,Files not found,stacked,,ebpf.plugin,dcstat
-cgroup.dc_ratio,cgroup,ratio,%,Percentage of files inside directory cache,line,,ebpf.plugin,dcstat
-cgroup.dc_reference,cgroup,reference,files,Count file access,line,,ebpf.plugin,dcstat
-cgroup.dc_not_cache,cgroup,slow,files,Files not present inside directory cache,line,,ebpf.plugin,dcstat
-cgroup.dc_not_found,cgroup,miss,files,Files not found,line,,ebpf.plugin,dcstat
-services.dc_ratio,,a dimension per systemd service,%,Percentage of files inside directory cache,line,,ebpf.plugin,dcstat
-services.dc_reference,,a dimension per systemd service,files,Count file access,line,,ebpf.plugin,dcstat
-services.dc_not_cache,,a dimension per systemd service,files,Files not present inside directory cache,line,,ebpf.plugin,dcstat
-services.dc_not_found,,a dimension per systemd service,files,Files not found,line,,ebpf.plugin,dcstat
-filesystem.dc_hit_ratio,,ratio,%,Percentage of files inside directory cache,line,,ebpf.plugin,dcstat
-filesystem.dc_reference,filesystem,"reference, slow, miss",files,Variables used to calculate hit ratio.,line,,ebpf.plugin,dcstat
-filesystem.read_latency,filesystem,latency period,calls/s,ext4 latency for each read request.,stacked,,ebpf.plugin,filesystem
-filesystem.write_latency,iilesystem,latency period,calls/s,ext4 latency for each write request.,stacked,,ebpf.plugin,filesystem
-filesystem.open_latency,filesystem,latency period,calls/s,ext4 latency for each open request.,stacked,,ebpf.plugin,filesystem
-filesystem.sync_latency,filesystem,latency period,calls/s,ext4 latency for each sync request.,stacked,,ebpf.plugin,filesystem
-filesystem.attributte_latency,,latency period,calls/s,nfs latency for each attribute request.,stacked,,ebpf.plugin,filesystem
-cgroup.shmget,cgroup,get,calls/s,Calls to syscall shmget(2)
.,line,,ebpf.plugin,shm
-cgroup.shmat,cgroup,at,calls/s,Calls to syscall shmat(2)
.,line,,ebpf.plugin,shm
-cgroup.shmdt,cgroup,dt,calls/s,Calls to syscall shmdt(2)
.,line,,ebpf.plugin,shm
-cgroup.shmctl,cgroup,ctl,calls/s,Calls to syscall shmctl(2)
.,line,,ebpf.plugin,shm
-services.shmget,,a dimension per systemd service,calls/s,Calls to syscall shmget(2)
.,stacked,,ebpf.plugin,shm
-services.shmat,,a dimension per systemd service,calls/s,Calls to syscall shmat(2)
.,stacked,,ebpf.plugin,shm
-services.shmdt,,a dimension per systemd service,calls/s,Calls to syscall shmdt(2)
.,stacked,,ebpf.plugin,shm
-services.shmctl,,a dimension per systemd service,calls/s,Calls to syscall shmctl(2)
.,stacked,,ebpf.plugin,shm
-apps.shmget_call,,a dimension per app group,calls/s,Calls to syscall shmget(2)
.,stacked,,ebpf.plugin,shm
-apps.shmat_call,,a dimension per app group,calls/s,Calls to syscall shmat(2)
.,stacked,,ebpf.plugin,shm
-apps.shmdt_call,,a dimension per app group,calls/s,Calls to syscall shmdt(2)
.,stacked,,ebpf.plugin,shm
-apps.shmctl_call,,a dimension per app group,calls/s,Calls to syscall shmctl(2)
.,stacked,,ebpf.plugin,shm
-system.shared_memory_calls,,"get, at, dt, ctl",calls/s,Calls to shared memory system calls,line,,ebpf.plugin,shm
-system.softirq_latency,,soft IRQs,miliseconds,Software IRQ latency,stacked,,ebpf.plugin,softirq
-mount_points.call,,"mount, umount",calls/s,Calls to mount and umount syscalls,line,,ebpf.plugin,mount
-mount_points.error,,"mount, umount",calls/s,Errors to mount and umount file systems,line,,ebpf.plugin,mount
-cgroup.vfs_unlink,cgroup,delete,calls/s,Files deleted,line,,ebpf.plugin,vfs
-cgroup.vfs_write,cgroup,write,calls/s,Write to disk,line,,ebpf.plugin,vfs
-cgroup.vfs_write_error,cgroup,write,calls/s,Fails to write,line,,ebpf.plugin,vfs
-cgroup.vfs_read,cgroup,read,calls/s,Read from disk,line,,ebpf.plugin,vfs
-cgroup.vfs_read_error,cgroup,read,calls/s,Fails to read,line,,ebpf.plugin,vfs
-cgroup.vfs_write_bytes,cgroup,write,bytes/s,Bytes written on disk,line,,ebpf.plugin,vfs
-cgroup.vfs_read_bytes,cgroup,read,bytes/s,Bytes read from disk,line,,ebpf.plugin,vfs
-cgroup.vfs_fsync,cgroup,fsync,calls/s,Calls for vfs_fsync
,line,,ebpf.plugin,vfs
-cgroup.vfs_fsync_error,cgroup,fsync,calls/s,Sync error,line,,ebpf.plugin,vfs
-cgroup.vfs_open,cgroup,open,calls/s,Calls for vfs_open
,line,,ebpf.plugin,vfs
-cgroup.vfs_open_error,cgroup,open,calls/s,Open error,line,,ebpf.plugin,vfs
-cgroup.vfs_create,cgroup,create,calls/s,Calls for vfs_create
,line,,ebpf.plugin,vfs
-cgroup.vfs_create_error,cgroup,create,calls/s,Create error,line,,ebpf.plugin,vfs
-services.vfs_unlink,,a dimension per systemd service,calls/s,Files deleted,stacked,,ebpf.plugin,vfs
-services.vfs_write,,a dimension per systemd service,calls/s,Write to disk,stacked,,ebpf.plugin,vfs
-services.vfs_write_error,,a dimension per systemd service,calls/s,Fails to write,stacked,,ebpf.plugin,vfs
-services.vfs_read,,a dimension per systemd service,calls/s,Read from disk,stacked,,ebpf.plugin,vfs
-services.vfs_read_error,,a dimension per systemd service,calls/s,Fails to read,stacked,,ebpf.plugin,vfs
-services.vfs_write_bytes,,a dimension per systemd service,bytes/s,Bytes written on disk,stacked,,ebpf.plugin,vfs
-services.vfs_read_bytes,,a dimension per systemd service,bytes/s,Bytes read from disk,stacked,,ebpf.plugin,vfs
-services.vfs_fsync,,a dimension per systemd service,calls/s,Calls to vfs_fsync
,stacked,,ebpf.plugin,vfs
-services.vfs_fsync_error,,a dimension per systemd service,calls/s,Sync error,stacked,,ebpf.plugin,vfs
-services.vfs_open,,a dimension per systemd service,calls/s,Calls to vfs_open
,stacked,,ebpf.plugin,vfs
-services.vfs_open_error,,a dimension per systemd service,calls/s,Open error,stacked,,ebpf.plugin,vfs
-services.vfs_create,,a dimension per systemd service,calls/s,Calls to vfs_create
,stacked,,ebpf.plugin,vfs
-services.vfs_create_error,,a dimension per systemd service,calls/s,Create error,stacked,,ebpf.plugin,vfs
-filesystem.vfs_deleted_objects,,delete,calls/s,Remove files,line,,ebpf.plugin,vfs
-filesystem.vfs_io,,"read, write",calls/s,Calls to IO,line,,ebpf.plugin,vfs
-filesystem.vfs_io_bytes,,"read, write",bytes/s,Bytes written and read,line,,ebpf.plugin,vfs
-filesystem.vfs_io_error,,"read, write",calls/s,Fails to write or read,line,,ebpf.plugin,vfs
-filesystem.vfs_fsync,,fsync,calls/s,Calls for vfs_fsync
,line,,ebpf.plugin,vfs
-filesystem.vfs_fsync_error,,fsync,calls/s,Fails to synchronize,line,,ebpf.plugin,vfs
-filesystem.vfs_open,,open,calls/s,Calls for vfs_open
,line,,ebpf.plugin,vfs
-filesystem.vfs_open_error,,open,calls/s,Fails to open a file,line,,ebpf.plugin,vfs
-filesystem.vfs_create,,create,calls/s,Calls for vfs_create
,line,,ebpf.plugin,vfs
-filesystem.vfs_create_error,,create,calls/s,Fails to create a file.,line,,ebpf.plugin,vfs
-apps.file_deleted,,a dimension per app group,calls/s,Files deleted,stacked,,ebpf.plugin,vfs
-apps.vfs_write_call,,a dimension per app group,calls/s,Write to disk,stacked,,ebpf.plugin,vfs
-apps.vfs_write_error,,a dimension per app group,calls/s,Fails to write,stacked,,ebpf.plugin,vfs
-apps.vfs_read_call,,a dimension per app group,calls/s,Read from disk,stacked,,ebpf.plugin,vfs
-apps.vfs_read_error,,a dimension per app group,calls/s,Fails to read,stacked,,ebpf.plugin,vfs
-apps.vfs_write_bytes,,a dimension per app group,bytes/s,Bytes written on disk,stacked,,ebpf.plugin,vfs
-apps.vfs_read_bytes,,a dimension per app group,bytes/s,Bytes read on disk,stacked,,ebpf.plugin,vfs
-apps.vfs_fsync,,a dimension per app group,calls/s,Calls for vfs_fsync
,stacked,,ebpf.plugin,vfs
-apps.vfs_fsync_error,,a dimension per app group,calls/s,Sync error,stacked,,ebpf.plugin,vfs
-apps.vfs_open,,a dimension per app group,calls/s,Calls for vfs_open
,stacked,,ebpf.plugin,vfs
-apps.vfs_open_error,,a dimension per app group,calls/s,Open error,stacked,,ebpf.plugin,vfs
-apps.vfs_create,,a dimension per app group,calls/s,Calls for vfs_create
,stacked,,ebpf.plugin,vfs
-apps.vfs_create_error,,a dimension per app group,calls/s,Create error,stacked,,ebpf.plugin,vfs
-netdata.ebpf_aral_stat_size,,memory,bytes,Bytes allocated for ARAL.,stacked,,ebpf.plugin,process
-netdata.ebpf_aral_stat_alloc,,aral,calls,Calls to allocate memory.,stacked,,ebpf.plugin,process
-netdata.ebpf_threads,,"total, running",threads,Threads info,line,,ebpf.plugin,process
-netdata.ebpf_load_methods,,"legacy, co-re",methods,Load info,line,,ebpf.plugin,process
-netdata.ebpf_kernel_memory,,memory_locked,bytes,Memory allocated for hash tables.,line,,ebpf.plugin,process
-netdata.ebpf_hash_tables_count,,hash_table,hash tables,Number of hash tables loaded,line,,ebpf.plugin,process
-netdata.ebpf_aral_stat_size,,memory,bytes,Bytes allocated for ARAL,stacked,,ebpf.plugin,process
-netdata.ebpf_aral_stat_alloc,,aral,calls,Calls to allocate memory,stacked,,ebpf.plugin,process
-netdata.ebpf_aral_stat_size,,memory,bytes,Bytes allocated for ARAL.,stacked,,ebpf.plugin,process
-netdata.ebpf_aral_stat_alloc,,aral,calls,Calls to allocate memory,stacked,,ebpf.plugin,process
diff --git a/collectors/ebpf.plugin/multi_metadata.yaml b/collectors/ebpf.plugin/multi_metadata.yaml
deleted file mode 100644
index 9a31a4037..000000000
--- a/collectors/ebpf.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,2360 +0,0 @@
-name: ebpf.plugin
-modules:
- - meta:
- plugin_name: ebpf.plugin
- module_name: filedescriptor
- monitored_instance:
- name: ebpf filedescriptor
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.fd_open
- description: Number of open files
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: cgroup.fd_open_error
- description: Fails to open files
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: cgroup.fd_closed
- description: Files closed
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: close
- - name: cgroup.fd_close_error
- description: Fails to close files
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: close
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.file_open
- description: Number of open files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.file_open_error
- description: Fails to open files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.file_closed
- description: Files closed
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.file_close_error
- description: Fails to close files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: apps.file_open
- description: Number of open files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.file_open_error
- description: Fails to open files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.file_closed
- description: Files closed
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.file_close_error
- description: Fails to close files
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: filesystem.file_descriptor
- description: Open and close calls
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: close
- - name: filesystem.file_error
- description: Open fails
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: close
- - meta:
- plugin_name: ebpf.plugin
- module_name: processes
- monitored_instance:
- name: ebpf processes
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.process_thread
- description: Start process
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: process
- - name: system.process_status
- description: Process not closed
- unit: "difference"
- chart_type: line
- dimensions:
- - name: process
- - name: zombie
- - name: system.exit
- description: Exit process
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: process
- - name: system.task_error
- description: Fails to create process
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: task
- - name: apps.process_create
- description: Process started
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.thread_create
- description: Threads started
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.task_exit
- description: Tasks starts exit process
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.task_close
- description: Tasks closed
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.task_error
- description: Errors to create process or threads
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.process_create
- description: Process started
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: process
- - name: cgroup.thread_create
- description: Threads started
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: thread
- - name: cgroup.task_exit
- description: Tasks starts exit process
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: exit
- - name: cgroup.task_close
- description: Tasks closed
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: process
- - name: cgroup.task_error
- description: Errors to create process or threads
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: process
- - name: services.process_create
- description: Process started
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.thread_create
- description: Threads started
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.task_close
- description: Tasks starts exit process
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.task_exit
- description: Tasks closed
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.task_error
- description: Errors to create process or threads
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - meta:
- plugin_name: ebpf.plugin
- module_name: disk
- monitored_instance:
- name: ebpf disk
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: disk
- description: ""
- labels: []
- metrics:
- - name: disk.latency_io
- description: Disk latency
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency
- - meta:
- plugin_name: ebpf.plugin
- module_name: hardirq
- monitored_instance:
- name: ebpf hardirq
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.hardirq_latency
- description: Hardware IRQ latency
- unit: "milisecondds"
- chart_type: stacked
- dimensions:
- - name: hardirq names
- - meta:
- plugin_name: ebpf.plugin
- module_name: cachestat
- monitored_instance:
- name: ebpf cachestat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: apps.cachestat_ratio
- description: Hit ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.cachestat_dirties
- description: Number of dirty pages
- unit: "page/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.cachestat_hits
- description: Number of accessed files
- unit: "hits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.cachestat_misses
- description: Files out of page cache
- unit: "misses/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: services.cachestat_ratio
- description: Hit ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.cachestat_dirties
- description: Number of dirty pages
- unit: "page/s"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.cachestat_hits
- description: Number of accessed files
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.cachestat_misses
- description: Files out of page cache
- unit: "misses/s"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: mem.cachestat_ratio
- description: Hit ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: ratio
- - name: mem.cachestat_dirties
- description: Number of dirty pages
- unit: "page/s"
- chart_type: line
- dimensions:
- - name: dirty
- - name: mem.cachestat_hits
- description: Number of accessed files
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hit
- - name: mem.cachestat_misses
- description: Files out of page cache
- unit: "misses/s"
- chart_type: line
- dimensions:
- - name: miss
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.cachestat_ratio
- description: Hit ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: ratio
- - name: cgroup.cachestat_dirties
- description: Number of dirty pages
- unit: "page/s"
- chart_type: line
- dimensions:
- - name: dirty
- - name: cgroup.cachestat_hits
- description: Number of accessed files
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hit
- - name: cgroup.cachestat_misses
- description: Files out of page cache
- unit: "misses/s"
- chart_type: line
- dimensions:
- - name: miss
- - meta:
- plugin_name: ebpf.plugin
- module_name: sync
- monitored_instance:
- name: ebpf sync
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: sync_freq
- link: https://github.com/netdata/netdata/blob/master/health/health.d/synchronization.conf
- metric: mem.sync
- info: number of sync() system calls. Every call causes all pending modifications to filesystem metadata and cached file data to be written to the underlying filesystems.
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mem.file_sync
- description: Monitor calls for fsync(2)
and fdatasync(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: fsync
- - name: fdatasync
- - name: mem.meory_map
- description: Monitor calls for msync(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: msync
- - name: mem.sync
- description: Monitor calls for sync(2)
and syncfs(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: sync
- - name: syncfs
- - name: mem.file_segment
- description: Monitor calls for sync_file_range(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: sync_file_range
- - meta:
- plugin_name: ebpf.plugin
- module_name: mdflush
- monitored_instance:
- name: ebpf mdflush
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mdstat.mdstat_flush
- description: MD flushes
- unit: "flushes"
- chart_type: stacked
- dimensions:
- - name: disk
- - meta:
- plugin_name: ebpf.plugin
- module_name: swap
- monitored_instance:
- name: ebpf swap
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.swap_read
- description: Calls to function swap_readpage
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: cgroup.swap_write
- description: Calls to function swap_writepage
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: write
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.swap_read
- description: Calls to swap_readpage
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.swap_write
- description: Calls to function swap_writepage
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: apps.swap_read_call
- description: Calls to function swap_readpage
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.swap_write_call
- description: Calls to function swap_writepage
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: system.swapcalls
- description: Calls to access swap memory
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: write
- - name: read
- - meta:
- plugin_name: ebpf.plugin
- module_name: oomkill
- monitored_instance:
- name: ebpf oomkill
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.oomkills
- description: OOM kills. This chart is provided by eBPF plugin.
- unit: "kills"
- chart_type: line
- dimensions:
- - name: cgroup name
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.oomkills
- description: OOM kills. This chart is provided by eBPF plugin.
- unit: "kills"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: apps.oomkills
- description: OOM kills
- unit: "kills"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - meta:
- plugin_name: ebpf.plugin
- module_name: socket
- monitored_instance:
- name: ebpf socket
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ip.inbound_conn
- description: Inbound connections.
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: connection_tcp
- - name: ip.tcp_outbound_conn
- description: TCP outbound connections.
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: received
- - name: ip.tcp_functions
- description: Calls to internal functions
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: closed
- - name: ip.total_tcp_bandwidth
- description: TCP bandwidth
- unit: "kilobits/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: ip.tcp_error
- description: TCP errors
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: ip.tcp_retransmit
- description: Packages retransmitted
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: retransmited
- - name: ip.udp_functions
- description: UDP calls
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: ip.total_udp_bandwidth
- description: UDP bandwidth
- unit: "kilobits/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: ip.udp_error
- description: UDP errors
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: send
- - name: apps.outbound_conn_v4
- description: Calls to tcp_v4_connection
- unit: "connections/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.outbound_conn_v6
- description: Calls to tcp_v6_connection
- unit: "connections/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.total_bandwidth_sent
- description: Bytes sent
- unit: "kilobits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.total_bandwidth_recv
- description: bytes received
- unit: "kilobits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.bandwidth_tcp_send
- description: Calls for tcp_sendmsg
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.bandwidth_tcp_recv
- description: Calls for tcp_cleanup_rbuf
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.bandwidth_tcp_retransmit
- description: Calls for tcp_retransmit
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.bandwidth_udp_send
- description: Calls for udp_sendmsg
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.bandwidth_udp_recv
- description: Calls for udp_recvmsg
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: services.net_conn_ipv4
- description: Calls to tcp_v4_connection
- unit: "connections/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_conn_ipv6
- description: Calls to tcp_v6_connection
- unit: "connections/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_bytes_recv
- description: Bytes received
- unit: "kilobits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_bytes_sent
- description: Bytes sent
- unit: "kilobits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_tcp_recv
- description: Calls to tcp_cleanup_rbuf.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_tcp_send
- description: Calls to tcp_sendmsg.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_tcp_retransmit
- description: Calls to tcp_retransmit
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_udp_send
- description: Calls to udp_sendmsg
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.net_udp_recv
- description: Calls to udp_recvmsg
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.net_conn_ipv4
- description: Calls to tcp_v4_connection
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: connected_v4
- - name: cgroup.net_conn_ipv6
- description: Calls to tcp_v6_connection
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: connected_v6
- - name: cgroup.net_bytes_recv
- description: Bytes received
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: cgroup.net_bytes_sent
- description: Bytes sent
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: cgroup.net_tcp_recv
- description: Calls to tcp_cleanup_rbuf.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - name: cgroup.net_tcp_send
- description: Calls to tcp_sendmsg.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: cgroup.net_retransmit
- description: Calls to tcp_retransmit.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: retransmitted
- - name: cgroup.net_udp_send
- description: Calls to udp_sendmsg
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: cgroup.net_udp_recv
- description: Calls to udp_recvmsg
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: received
- - meta:
- plugin_name: ebpf.plugin
- module_name: dcstat
- monitored_instance:
- name: ebpf dcstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: apps.dc_ratio
- description: Percentage of files inside directory cache
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per app group
- - name: apps.dc_reference
- description: Count file access
- unit: "files"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.dc_not_cache
- description: Files not present inside directory cache
- unit: "files"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.dc_not_found
- description: Files not found
- unit: "files"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: services.dc_ratio
- description: Percentage of files inside directory cache
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.dc_reference
- description: Count file access
- unit: "files"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.dc_not_cache
- description: Files not present inside directory cache
- unit: "files"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: services.dc_not_found
- description: Files not found
- unit: "files"
- chart_type: line
- dimensions:
- - name: a dimension per systemd service
- - name: filesystem.dc_hit_ratio
- description: Percentage of files inside directory cache
- unit: "%"
- chart_type: line
- dimensions:
- - name: ratio
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.dc_ratio
- description: Percentage of files inside directory cache
- unit: "%"
- chart_type: line
- dimensions:
- - name: ratio
- - name: cgroup.dc_reference
- description: Count file access
- unit: "files"
- chart_type: line
- dimensions:
- - name: reference
- - name: cgroup.dc_not_cache
- description: Files not present inside directory cache
- unit: "files"
- chart_type: line
- dimensions:
- - name: slow
- - name: cgroup.dc_not_found
- description: Files not found
- unit: "files"
- chart_type: line
- dimensions:
- - name: miss
- - name: filesystem
- description: ""
- labels: []
- metrics:
- - name: filesystem.dc_reference
- description: Variables used to calculate hit ratio.
- unit: "files"
- chart_type: line
- dimensions:
- - name: reference
- - name: slow
- - name: miss
- - meta:
- plugin_name: ebpf.plugin
- module_name: filesystem
- monitored_instance:
- name: ebpf filesystem
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: filesystem
- description: ""
- labels: []
- metrics:
- - name: filesystem.read_latency
- description: ext4 latency for each read request.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency period
- - name: filesystem.open_latency
- description: ext4 latency for each open request.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency period
- - name: filesystem.sync_latency
- description: ext4 latency for each sync request.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency period
- - name: iilesystem
- description: ""
- labels: []
- metrics:
- - name: filesystem.write_latency
- description: ext4 latency for each write request.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency period
- - name: global
- description: ""
- labels: []
- metrics:
- - name: filesystem.attributte_latency
- description: nfs latency for each attribute request.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: latency period
- - meta:
- plugin_name: ebpf.plugin
- module_name: shm
- monitored_instance:
- name: ebpf shm
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.shmget
- description: Calls to syscall shmget(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: get
- - name: cgroup.shmat
- description: Calls to syscall shmat(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: at
- - name: cgroup.shmdt
- description: Calls to syscall shmdt(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: dt
- - name: cgroup.shmctl
- description: Calls to syscall shmctl(2)
.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: ctl
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.shmget
- description: Calls to syscall shmget(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.shmat
- description: Calls to syscall shmat(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.shmdt
- description: Calls to syscall shmdt(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.shmctl
- description: Calls to syscall shmctl(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: apps.shmget_call
- description: Calls to syscall shmget(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.shmat_call
- description: Calls to syscall shmat(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.shmdt_call
- description: Calls to syscall shmdt(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.shmctl_call
- description: Calls to syscall shmctl(2)
.
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: system.shared_memory_calls
- description: Calls to shared memory system calls
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: get
- - name: at
- - name: dt
- - name: ctl
- - meta:
- plugin_name: ebpf.plugin
- module_name: softirq
- monitored_instance:
- name: ebpf softirq
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.softirq_latency
- description: Software IRQ latency
- unit: "miliseconds"
- chart_type: stacked
- dimensions:
- - name: soft IRQs
- - meta:
- plugin_name: ebpf.plugin
- module_name: mount
- monitored_instance:
- name: ebpf mount
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mount_points.call
- description: Calls to mount and umount syscalls
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: mount
- - name: umount
- - name: mount_points.error
- description: Errors to mount and umount file systems
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: mount
- - name: umount
- - meta:
- plugin_name: ebpf.plugin
- module_name: vfs
- monitored_instance:
- name: ebpf vfs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: cgroup
- description: ""
- labels: []
- metrics:
- - name: cgroup.vfs_unlink
- description: Files deleted
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: delete
- - name: cgroup.vfs_write
- description: Write to disk
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: write
- - name: cgroup.vfs_write_error
- description: Fails to write
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: write
- - name: cgroup.vfs_read
- description: Read from disk
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: cgroup.vfs_read_error
- description: Fails to read
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: cgroup.vfs_write_bytes
- description: Bytes written on disk
- unit: "bytes/s"
- chart_type: line
- dimensions:
- - name: write
- - name: cgroup.vfs_read_bytes
- description: Bytes read from disk
- unit: "bytes/s"
- chart_type: line
- dimensions:
- - name: read
- - name: cgroup.vfs_fsync
- description: Calls for vfs_fsync
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: fsync
- - name: cgroup.vfs_fsync_error
- description: Sync error
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: fsync
- - name: cgroup.vfs_open
- description: Calls for vfs_open
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: cgroup.vfs_open_error
- description: Open error
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: cgroup.vfs_create
- description: Calls for vfs_create
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: create
- - name: cgroup.vfs_create_error
- description: Create error
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: create
- - name: global
- description: ""
- labels: []
- metrics:
- - name: services.vfs_unlink
- description: Files deleted
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_write
- description: Write to disk
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_write_error
- description: Fails to write
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_read
- description: Read from disk
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_read_error
- description: Fails to read
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_write_bytes
- description: Bytes written on disk
- unit: "bytes/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_read_bytes
- description: Bytes read from disk
- unit: "bytes/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_fsync
- description: Calls to vfs_fsync
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_fsync_error
- description: Sync error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_open
- description: Calls to vfs_open
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_open_error
- description: Open error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_create
- description: Calls to vfs_create
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: services.vfs_create_error
- description: Create error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per systemd service
- - name: filesystem.vfs_deleted_objects
- description: Remove files
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: delete
- - name: filesystem.vfs_io
- description: Calls to IO
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: filesystem.vfs_io_bytes
- description: Bytes written and read
- unit: "bytes/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: filesystem.vfs_io_error
- description: Fails to write or read
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: filesystem.vfs_fsync
- description: Calls for vfs_fsync
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: fsync
- - name: filesystem.vfs_fsync_error
- description: Fails to synchronize
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: fsync
- - name: filesystem.vfs_open
- description: Calls for vfs_open
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: filesystem.vfs_open_error
- description: Fails to open a file
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: open
- - name: filesystem.vfs_create
- description: Calls for vfs_create
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: create
- - name: filesystem.vfs_create_error
- description: Fails to create a file.
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: create
- - name: apps.file_deleted
- description: Files deleted
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_write_call
- description: Write to disk
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_write_error
- description: Fails to write
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_read_call
- description: Read from disk
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_read_error
- description: Fails to read
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_write_bytes
- description: Bytes written on disk
- unit: "bytes/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_read_bytes
- description: Bytes read on disk
- unit: "bytes/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_fsync
- description: Calls for vfs_fsync
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_fsync_error
- description: Sync error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_open
- description: Calls for vfs_open
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_open_error
- description: Open error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_create
- description: Calls for vfs_create
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - name: apps.vfs_create_error
- description: Create error
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per app group
- - meta:
- plugin_name: ebpf.plugin
- module_name: process
- monitored_instance:
- name: ebpf process
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: netdata.ebpf_aral_stat_size
- description: Bytes allocated for ARAL.
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: memory
- - name: netdata.ebpf_aral_stat_alloc
- description: Calls to allocate memory.
- unit: "calls"
- chart_type: stacked
- dimensions:
- - name: aral
- - name: netdata.ebpf_threads
- description: Threads info
- unit: "threads"
- chart_type: line
- dimensions:
- - name: total
- - name: running
- - name: netdata.ebpf_load_methods
- description: Load info
- unit: "methods"
- chart_type: line
- dimensions:
- - name: legacy
- - name: co-re
- - name: netdata.ebpf_kernel_memory
- description: Memory allocated for hash tables.
- unit: "bytes"
- chart_type: line
- dimensions:
- - name: memory_locked
- - name: netdata.ebpf_hash_tables_count
- description: Number of hash tables loaded
- unit: "hash tables"
- chart_type: line
- dimensions:
- - name: hash_table
- - name: netdata.ebpf_aral_stat_size
- description: Bytes allocated for ARAL
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: memory
- - name: netdata.ebpf_aral_stat_alloc
- description: Calls to allocate memory
- unit: "calls"
- chart_type: stacked
- dimensions:
- - name: aral
- - name: netdata.ebpf_aral_stat_size
- description: Bytes allocated for ARAL.
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: memory
- - name: netdata.ebpf_aral_stat_alloc
- description: Calls to allocate memory
- unit: "calls"
- chart_type: stacked
- dimensions:
- - name: aral
diff --git a/collectors/freebsd.plugin/freebsd_sysctl.c b/collectors/freebsd.plugin/freebsd_sysctl.c
index c8aa5dad5..8a6df509d 100644
--- a/collectors/freebsd.plugin/freebsd_sysctl.c
+++ b/collectors/freebsd.plugin/freebsd_sysctl.c
@@ -834,7 +834,7 @@ int do_vm_swap_info(int update_every, usec_t dt) {
static int mib[3] = {0, 0, 0};
if (unlikely(getsysctl_mib("vm.swap_info", mib, 2))) {
- collector_error("DISABLED: system.swap chart");
+ collector_error("DISABLED: mem.swap chart");
collector_error("DISABLED: vm.swap_info module");
return 1;
} else {
@@ -853,13 +853,13 @@ int do_vm_swap_info(int update_every, usec_t dt) {
if (unlikely(sysctl(mib, 3, &xsw, &size, NULL, 0) == -1 )) {
if (unlikely(errno != ENOENT)) {
collector_error("FREEBSD: sysctl(%s...) failed: %s", "vm.swap_info", strerror(errno));
- collector_error("DISABLED: system.swap chart");
+ collector_error("DISABLED: mem.swap chart");
collector_error("DISABLED: vm.swap_info module");
return 1;
} else {
if (unlikely(size != sizeof(xsw))) {
collector_error("FREEBSD: sysctl(%s...) expected %lu, got %lu", "vm.swap_info", (unsigned long)sizeof(xsw), (unsigned long)size);
- collector_error("DISABLED: system.swap chart");
+ collector_error("DISABLED: mem.swap chart");
collector_error("DISABLED: vm.swap_info module");
return 1;
} else break;
@@ -874,7 +874,7 @@ int do_vm_swap_info(int update_every, usec_t dt) {
if (unlikely(!st)) {
st = rrdset_create_localhost(
- "system",
+ "mem",
"swap",
NULL,
"swap",
@@ -883,7 +883,7 @@ int do_vm_swap_info(int update_every, usec_t dt) {
"MiB",
"freebsd.plugin",
"vm.swap_info",
- NETDATA_CHART_PRIO_SYSTEM_SWAP,
+ NETDATA_CHART_PRIO_MEM_SWAP,
update_every,
RRDSET_TYPE_STACKED
);
@@ -1026,7 +1026,7 @@ int do_vm_stats_sys_v_swappgs(int update_every, usec_t dt) {
if (unlikely(GETSYSCTL_SIMPLE("vm.stats.vm.v_swappgsin", mib_swappgsin, vmmeter_data.v_swappgsin) ||
GETSYSCTL_SIMPLE("vm.stats.vm.v_swappgsout", mib_swappgsout, vmmeter_data.v_swappgsout))) {
- collector_error("DISABLED: system.swapio chart");
+ collector_error("DISABLED: mem.swapio chart");
collector_error("DISABLED: vm.stats.vm.v_swappgs module");
return 1;
} else {
@@ -1035,7 +1035,7 @@ int do_vm_stats_sys_v_swappgs(int update_every, usec_t dt) {
if (unlikely(!st)) {
st = rrdset_create_localhost(
- "system",
+ "mem",
"swapio",
NULL,
"swap",
@@ -1044,7 +1044,7 @@ int do_vm_stats_sys_v_swappgs(int update_every, usec_t dt) {
"KiB/s",
"freebsd.plugin",
"vm.stats.vm.v_swappgs",
- NETDATA_CHART_PRIO_SYSTEM_SWAPIO,
+ NETDATA_CHART_PRIO_MEM_SWAPIO,
update_every,
RRDSET_TYPE_AREA
);
diff --git a/collectors/freebsd.plugin/metadata.yaml b/collectors/freebsd.plugin/metadata.yaml
new file mode 100644
index 000000000..fca8982f7
--- /dev/null
+++ b/collectors/freebsd.plugin/metadata.yaml
@@ -0,0 +1,3430 @@
+plugin_name: freebsd.plugin
+modules:
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.loadavg
+ monitored_instance:
+ name: vm.loadavg
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "System Load Average"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.loadavg
+ description: Enable or disable load average metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: load_cpu_number
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: number of active CPU cores in the system
+ os: "linux"
+ - name: load_average_15
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system fifteen-minute load average
+ os: "linux"
+ - name: load_average_5
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system five-minute load average
+ os: "linux"
+ - name: load_average_1
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system one-minute load average
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "Monitoring for number of threads running or waiting."
+ labels: []
+ metrics:
+ - name: system.load
+ description: System Load Average
+ unit: "load"
+ chart_type: line
+ dimensions:
+ - name: load1
+ - name: load5
+ - name: load15
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.vmtotal
+ monitored_instance:
+ name: vm.vmtotal
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "memory.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect Virtual Memory information from host."
+ method_description: "The plugin calls function `sysctl` to collect data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:vm.vmtotal]"
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: "Config Options"
+ enabled: true
+ list:
+ - name: enable total processes
+ description: Number of active processes.
+ default_value: yes
+ required: false
+ - name: processes running
+ description: Show number of processes running or blocked.
+ default_value: yes
+ required: false
+ - name: real memory
+ description: Memeory used on host.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: active_processes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf
+ metric: system.active_processes
+ info: system process IDs (PID) space utilization
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show an overall vision about processes running."
+ labels: []
+ metrics:
+ - name: system.active_processes
+ description: System Active Processes
+ unit: "processes"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: system.processes
+ description: System Processes
+ unit: "processes"
+ chart_type: line
+ dimensions:
+ - name: running
+ - name: blocked
+ - name: mem.real
+ description: Total Real Memory In Use
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: used
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: kern.cp_time
+ monitored_instance:
+ name: kern.cp_time
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Total CPU utilization"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ description: "[plugin:freebsd]"
+ options:
+ description: "The netdata main configuration file."
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: kern.cp_time
+ description: Enable or disable Total CPU usage.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 10min_cpu_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
+ os: "linux"
+ - name: 10min_cpu_iowait
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU iowait time over the last 10 minutes
+ os: "linux"
+ - name: 20min_steal_cpu
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU steal time over the last 20 minutes
+ os: "linux"
+ - name: 10min_cpu_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU utilization over the last 10 minutes (excluding nice)
+ os: "freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show CPU usage statistics."
+ labels: []
+ metrics:
+ - name: system.cpu
+ description: Total CPU utilization
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: nice
+ - name: system
+ - name: user
+ - name: interrupt
+ - name: idle
+ - name: core
+ description: ""
+ labels: []
+ metrics:
+ - name: cpu.cpu
+ description: Core utilization
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: nice
+ - name: system
+ - name: user
+ - name: interrupt
+ - name: idle
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: dev.cpu.temperature
+ monitored_instance:
+ name: dev.cpu.temperature
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.org"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Get current CPU temperature"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: dev.cpu.temperature
+ description: Enable or disable CPU temperature metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "This metric show latest CPU temperature."
+ labels: []
+ metrics:
+ - name: cpu.temperature
+ description: Core temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per core
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: dev.cpu.0.freq
+ monitored_instance:
+ name: dev.cpu.0.freq
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Read current CPU Scaling frequency."
+ method_description: "Current CPU Scaling Frequency"
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "Config options"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file"
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list:
+ - name: dev.cpu.0.freq
+ description: Enable or disable CPU Scaling frequency metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "The metric shows status of CPU frequency, it is direct affected by system load."
+ labels: []
+ metrics:
+ - name: cpu.scaling_cur_freq
+ description: Current CPU Scaling Frequency
+ unit: "MHz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: hw.intrcnt
+ monitored_instance:
+ name: hw.intrcnt
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Get total number of interrupts"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config option"
+ enabled: true
+ list:
+ - name: hw.intrcnt
+ description: Enable or disable Interrupts metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show system interrupts frequency."
+ labels: []
+ metrics:
+ - name: system.intr
+ description: Total Hardware Interrupts
+ unit: "interrupts/s"
+ chart_type: line
+ dimensions:
+ - name: interrupts
+ - name: system.interrupts
+ description: System interrupts
+ unit: "interrupts/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per interrupt
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.stats.sys.v_intr
+ monitored_instance:
+ name: vm.stats.sys.v_intr
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Device interrupts"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config option"
+ enabled: true
+ list:
+ - name: vm.stats.sys.v_intr
+ description: Enable or disable device interrupts metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "The metric show device interrupt frequency."
+ labels: []
+ metrics:
+ - name: system.dev_intr
+ description: Device Interrupts
+ unit: "interrupts/s"
+ chart_type: line
+ dimensions:
+ - name: interrupts
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.stats.sys.v_soft
+ monitored_instance:
+ name: vm.stats.sys.v_soft
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Software Interrupt"
+ method_description: "vm.stats.sys.v_soft"
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config option"
+ enabled: true
+ list:
+ - name: vm.stats.sys.v_soft
+ description: Enable or disable software inerrupts metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "This metric shows software interrupt frequency."
+ labels: []
+ metrics:
+ - name: system.soft_intr
+ description: Software Interrupts
+ unit: "interrupts/s"
+ chart_type: line
+ dimensions:
+ - name: interrupts
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.stats.sys.v_swtch
+ monitored_instance:
+ name: vm.stats.sys.v_swtch
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "CPU context switch"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.stats.sys.v_swtch
+ description: Enable or disable CPU context switch metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "The metric count the number of context switches happening on host."
+ labels: []
+ metrics:
+ - name: system.ctxt
+ description: CPU Context Switches
+ unit: "context switches/s"
+ chart_type: line
+ dimensions:
+ - name: switches
+ - name: system.forks
+ description: Started Processes
+ unit: "processes/s"
+ chart_type: line
+ dimensions:
+ - name: started
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.swap_info
+ monitored_instance:
+ name: vm.swap_info
+ link: ""
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about SWAP memory."
+ method_description: "The plugin calls `sysctlnametomib` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.swap_info
+ description: Enable or disable SWAP metrics.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: used_swap
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
+ metric: mem.swap
+ info: swap memory utilization
+ os: "linux freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "This metric shows the SWAP usage."
+ labels: []
+ metrics:
+ - name: mem.swap
+ description: System Swap
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: system.ram
+ monitored_instance:
+ name: system.ram
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "memory.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Show information about system memory usage."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: system.ram
+ description: Enable or disable system RAM metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ram_in_use
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: system.ram
+ info: system memory utilization
+ os: "linux"
+ - name: ram_in_use
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: system.ram
+ info: system memory utilization
+ os: "freebsd"
+ - name: ram_available
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: mem.available
+ info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
+ os: "linux"
+ - name: ram_available
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: mem.available
+ info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
+ os: "freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "This metric shows RAM usage statistics."
+ labels: []
+ metrics:
+ - name: system.ram
+ description: System RAM
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: active
+ - name: inactive
+ - name: wired
+ - name: cache
+ - name: laundry
+ - name: buffers
+ - name: mem.available
+ description: Available RAM for applications
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: avail
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.stats.vm.v_swappgs
+ monitored_instance:
+ name: vm.stats.vm.v_swappgs
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "memory.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "The metric swap amount of data read from and written to SWAP."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.stats.vm.v_swappgs
+ description: Enable or disable infoormation about SWAP I/O metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 30min_ram_swapped_out
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
+ metric: mem.swapio
+ info: percentage of the system RAM swapped in the last 30 minutes
+ os: "linux freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "This metric shows events happening on SWAP."
+ labels: []
+ metrics:
+ - name: mem.swapio
+ description: Swap I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: io
+ - name: out
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: vm.stats.vm.v_pgfaults
+ monitored_instance:
+ name: vm.stats.vm.v_pgfaults
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "memory.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect memory page faults events."
+ method_description: "The plugin calls `sysctl` function to collect necessary data"
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.stats.vm.v_pgfaults
+ description: Enable or disable Memory page fault metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "The number of page faults happened on host."
+ labels: []
+ metrics:
+ - name: mem.pgfaults
+ description: Memory Page Faults
+ unit: "page faults/s"
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: io_requiring
+ - name: cow
+ - name: cow_optimized
+ - name: in_transit
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: kern.ipc.sem
+ monitored_instance:
+ name: kern.ipc.sem
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about semaphore."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: kern.ipc.sem
+ description: Enable or disable semaphore metrics.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: semaphores_used
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
+ metric: system.ipc_semaphores
+ info: IPC semaphore utilization
+ os: "linux"
+ - name: semaphore_arrays_used
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
+ metric: system.ipc_semaphore_arrays
+ info: IPC semaphore arrays utilization
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics shows counters for semaphores on host."
+ labels: []
+ metrics:
+ - name: system.ipc_semaphores
+ description: IPC Semaphores
+ unit: "semaphores"
+ chart_type: area
+ dimensions:
+ - name: semaphores
+ - name: system.ipc_semaphore_arrays
+ description: IPC Semaphore Arrays
+ unit: "arrays"
+ chart_type: area
+ dimensions:
+ - name: arrays
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: kern.ipc.shm
+ monitored_instance:
+ name: kern.ipc.shm
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "memory.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect shared memory information."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: kern.ipc.shm
+ description: Enable or disable shared memory metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics give status about current shared memory segments."
+ labels: []
+ metrics:
+ - name: system.ipc_shared_mem_segs
+ description: IPC Shared Memory Segments
+ unit: "segments"
+ chart_type: area
+ dimensions:
+ - name: segments
+ - name: system.ipc_shared_mem_size
+ description: IPC Shared Memory Segments Size
+ unit: "KiB"
+ chart_type: area
+ dimensions:
+ - name: allocated
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: kern.ipc.msq
+ monitored_instance:
+ name: kern.ipc.msq
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect number of IPC message Queues"
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: kern.ipc.msq
+ description: Enable or disable IPC message queue metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show statistics IPC messages statistics."
+ labels: []
+ metrics:
+ - name: system.ipc_msq_queues
+ description: Number of IPC Message Queues
+ unit: "queues"
+ chart_type: area
+ dimensions:
+ - name: queues
+ - name: system.ipc_msq_messages
+ description: Number of Messages in IPC Message Queues
+ unit: "messages"
+ chart_type: area
+ dimensions:
+ - name: messages
+ - name: system.ipc_msq_size
+ description: Size of IPC Message Queues
+ unit: "bytes"
+ chart_type: line
+ dimensions:
+ - name: allocated
+ - name: used
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: uptime
+ monitored_instance:
+ name: uptime
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Show period of time server is up."
+ method_description: "The plugin calls `clock_gettime` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: vm.loadavg
+ description: Enable or disable load average metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "How long the system is running."
+ labels: []
+ metrics:
+ - name: system.uptime
+ description: System Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.isr
+ monitored_instance:
+ name: net.isr
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "freebsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about system softnet stat."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.isr]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: netisr
+ description: Enable or disable general vision about softnet stat metrics.
+ default_value: yes
+ required: false
+ - name: netisr per core
+ description: Enable or disable softnet stat metric per core.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 1min_netdev_backlog_exceeded
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
+ metric: system.softnet_stat
+ info: average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog
+ os: "linux"
+ - name: 1min_netdev_budget_ran_outs
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
+ metric: system.softnet_stat
+ info:
+ average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last
+ minute (this can be a cause for dropped packets)
+ os: "linux"
+ - name: 10min_netisr_backlog_exceeded
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
+ metric: system.softnet_stat
+ info: average number of drops in the last minute due to exceeded sysctl net.route.netisr_maxqlen (this can be a cause for dropped packets)
+ os: "freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show statistics about softnet stats."
+ labels: []
+ metrics:
+ - name: system.softnet_stat
+ description: System softnet_stat
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: dispatched
+ - name: hybrid_dispatched
+ - name: qdrops
+ - name: queued
+ - name: core
+ description: ""
+ labels: []
+ metrics:
+ - name: cpu.softnet_stat
+ description: Per CPU netisr statistics
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: dispatched
+ - name: hybrid_dispatched
+ - name: qdrops
+ - name: queued
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: devstat
+ monitored_instance:
+ name: devstat
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information per hard disk available on host."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:kern.devstat]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: enable new disks detected at runtime
+ description: Enable or disable possibility to detect new disks.
+ default_value: auto
+ required: false
+ - name: performance metrics for pass devices
+ description: Enable or disable metrics for disks with type `PASS`.
+ default_value: auto
+ required: false
+ - name: total bandwidth for all disks
+ description: Enable or disable total bandwidth metric for all disks.
+ default_value: yes
+ required: false
+ - name: bandwidth for all disks
+ description: Enable or disable bandwidth for all disks metric.
+ default_value: auto
+ required: false
+ - name: operations for all disks
+ description: Enable or disable operations for all disks metric.
+ default_value: auto
+ required: false
+ - name: queued operations for all disks
+ description: Enable or disable queued operations for all disks metric.
+ default_value: auto
+ required: false
+ - name: utilization percentage for all disks
+ description: Enable or disable utilization percentage for all disks metric.
+ default_value: auto
+ required: false
+ - name: i/o time for all disks
+ description: Enable or disable I/O time for all disks metric.
+ default_value: auto
+ required: false
+ - name: average completed i/o time for all disks
+ description: Enable or disable average completed I/O time for all disks metric.
+ default_value: auto
+ required: false
+ - name: average completed i/o bandwidth for all disks
+ description: Enable or disable average completed I/O bandwidth for all disks metric.
+ default_value: auto
+ required: false
+ - name: average service time for all disks
+ description: Enable or disable average service time for all disks metric.
+ default_value: auto
+ required: false
+ - name: disable by default disks matching
+ description: Do not create charts for disks listed.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 10min_disk_utilization
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.util
+ info: average percentage of time ${label:device} disk was busy over the last 10 minutes
+ os: "linux freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics give a general vision about I/O events on disks."
+ labels: []
+ metrics:
+ - name: system.io
+ description: Disk I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: io
+ - name: out
+ - name: disk
+ description: ""
+ labels: []
+ metrics:
+ - name: disk.io
+ description: Disk I/O Bandwidth
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: frees
+ - name: disk.ops
+ description: Disk Completed I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: other
+ - name: frees
+ - name: disk.qops
+ description: Disk Current I/O Operations
+ unit: "operations"
+ chart_type: line
+ dimensions:
+ - name: operations
+ - name: disk.util
+ description: Disk Utilization Time
+ unit: "% of time working"
+ chart_type: line
+ dimensions:
+ - name: utilization
+ - name: disk.iotime
+ description: Disk Total I/O Time
+ unit: "milliseconds/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: other
+ - name: frees
+ - name: disk.await
+ description: Average Completed I/O Operation Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: other
+ - name: frees
+ - name: disk.avgsz
+ description: Average Completed I/O Operation Bandwidth
+ unit: "KiB/operation"
+ chart_type: area
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: frees
+ - name: disk.svctm
+ description: Average Service Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: svctm
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet.tcp.states
+ monitored_instance:
+ name: net.inet.tcp.states
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: ""
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: net.inet.tcp.states
+ description: Enable or disable TCP state metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: tcp_connections
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf
+ metric: ipv4.tcpsock
+ info: IPv4 TCP connections utilization
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "A counter for TCP connections."
+ labels: []
+ metrics:
+ - name: ipv4.tcpsock
+ description: IPv4 TCP Connections
+ unit: "active connections"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet.tcp.stats
+ monitored_instance:
+ name: net.inet.tcp.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect overall information about TCP connections."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet.tcp.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: ipv4 TCP packets
+ description: Enable or disable ipv4 TCP packets metric.
+ default_value: yes
+ required: false
+ - name: ipv4 TCP errors
+ description: Enable or disable pv4 TCP errors metric.
+ default_value: yes
+ required: false
+ - name: ipv4 TCP handshake issues
+ description: Enable or disable ipv4 TCP handshake issue metric.
+ default_value: yes
+ required: false
+ - name: TCP connection aborts
+ description: Enable or disable TCP connection aborts metric.
+ default_value: auto
+ required: false
+ - name: TCP out-of-order queue
+ description: Enable or disable TCP out-of-order queue metric.
+ default_value: auto
+ required: false
+ - name: TCP SYN cookies
+ description: Enable or disable TCP SYN cookies metric.
+ default_value: auto
+ required: false
+ - name: TCP listen issues
+ description: Enable or disable TCP listen issues metric.
+ default_value: auto
+ required: false
+ - name: ECN packets
+ description: Enable or disable ECN packets metric.
+ default_value: auto
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 1m_ipv4_tcp_resets_sent
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info: average number of sent TCP RESETS over the last minute
+ os: "linux"
+ - name: 10s_ipv4_tcp_resets_sent
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info:
+ average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has
+ crashed. Netdata will not send a clear notification for this alarm.
+ os: "linux"
+ - name: 1m_ipv4_tcp_resets_received
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info: average number of received TCP RESETS over the last minute
+ os: "linux freebsd"
+ - name: 10s_ipv4_tcp_resets_received
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info:
+ average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed.
+ Netdata will not send a clear notification for this alarm.
+ os: "linux freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show TCP connections statistics."
+ labels: []
+ metrics:
+ - name: ipv4.tcppackets
+ description: IPv4 TCP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.tcperrors
+ description: IPv4 TCP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrs
+ - name: InCsumErrors
+ - name: RetransSegs
+ - name: ipv4.tcphandshake
+ description: IPv4 TCP Handshake Issues
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: EstabResets
+ - name: ActiveOpens
+ - name: PassiveOpens
+ - name: AttemptFails
+ - name: ipv4.tcpconnaborts
+ description: TCP Connection Aborts
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: baddata
+ - name: userclosed
+ - name: nomemory
+ - name: timeout
+ - name: linger
+ - name: ipv4.tcpofo
+ description: TCP Out-Of-Order Queue
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: inqueue
+ - name: ipv4.tcpsyncookies
+ description: TCP SYN Cookies
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: failed
+ - name: ipv4.tcplistenissues
+ description: TCP Listen Socket Issues
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: overflows
+ - name: ipv4.ecnpkts
+ description: IPv4 ECN Statistics
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InCEPkts
+ - name: InECT0Pkts
+ - name: InECT1Pkts
+ - name: OutECT0Pkts
+ - name: OutECT1Pkts
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet.udp.stats
+ monitored_instance:
+ name: net.inet.udp.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about UDP connections."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet.udp.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: ipv4 UDP packets
+ description: Enable or disable ipv4 UDP packets metric.
+ default_value: yes
+ required: false
+ - name: ipv4 UDP errors
+ description: Enable or disable ipv4 UDP errors metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 1m_ipv4_udp_receive_buffer_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
+ metric: ipv4.udperrors
+ info: average number of UDP receive buffer errors over the last minute
+ os: "linux freebsd"
+ - name: 1m_ipv4_udp_send_buffer_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
+ metric: ipv4.udperrors
+ info: average number of UDP send buffer errors over the last minute
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show UDP connections statistics."
+ labels: []
+ metrics:
+ - name: ipv4.udppackets
+ description: IPv4 UDP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.udperrors
+ description: IPv4 UDP Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: NoPorts
+ - name: RcvbufErrors
+ - name: InCsumErrors
+ - name: IgnoredMulti
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet.icmp.stats
+ monitored_instance:
+ name: net.inet.icmp.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about ICMP traffic."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet.icmp.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: IPv4 ICMP packets
+ description: Enable or disable IPv4 ICMP packets metric.
+ default_value: yes
+ required: false
+ - name: IPv4 ICMP error
+ description: Enable or disable IPv4 ICMP error metric.
+ default_value: yes
+ required: false
+ - name: IPv4 ICMP messages
+ description: Enable or disable IPv4 ICMP messages metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show ICMP connections statistics."
+ labels: []
+ metrics:
+ - name: ipv4.icmp
+ description: IPv4 ICMP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.icmp_errors
+ description: IPv4 ICMP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: ipv4.icmpmsg
+ description: IPv4 ICMP Messages
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InEchoReps
+ - name: OutEchoReps
+ - name: InEchos
+ - name: OutEchos
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet.ip.stats
+ monitored_instance:
+ name: net.inet.ip.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect IP stats"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet.ip.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: ipv4 packets
+ description: Enable or disable IPv4 packets metric.
+ default_value: yes
+ required: false
+ - name: ipv4 fragments sent
+ description: Enable or disable IPv4 fragments sent metric.
+ default_value: yes
+ required: false
+ - name: ipv4 fragments assembly
+ description: Enable or disable IPv4 fragments assembly metric.
+ default_value: yes
+ required: false
+ - name: ipv4 errors
+ description: Enable or disable IPv4 errors metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show IPv4 connections statistics."
+ labels: []
+ metrics:
+ - name: ipv4.packets
+ description: IPv4 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivered
+ - name: ipv4.fragsout
+ description: IPv4 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: created
+ - name: ipv4.fragsin
+ description: IPv4 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv4.errors
+ description: IPv4 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: OutNoRoutes
+ - name: InAddrErrors
+ - name: InUnknownProtos
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet6.ip6.stats
+ monitored_instance:
+ name: net.inet6.ip6.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information abou IPv6 stats."
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet6.ip6.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: ipv6 packets
+ description: Enable or disable ipv6 packet metric.
+ default_value: auto
+ required: false
+ - name: ipv6 fragments sent
+ description: Enable or disable ipv6 fragments sent metric.
+ default_value: auto
+ required: false
+ - name: ipv6 fragments assembly
+ description: Enable or disable ipv6 fragments assembly metric.
+ default_value: auto
+ required: false
+ - name: ipv6 errors
+ description: Enable or disable ipv6 errors metric.
+ default_value: auto
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show general information about IPv6 connections."
+ labels: []
+ metrics:
+ - name: ipv6.packets
+ description: IPv6 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivers
+ - name: ipv6.fragsout
+ description: IPv6 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv6.fragsin
+ description: IPv6 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: timeout
+ - name: all
+ - name: ipv6.errors
+ description: IPv6 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: InAddrErrors
+ - name: InTruncatedPkts
+ - name: InNoRoutes
+ - name: OutNoRoutes
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: net.inet6.icmp6.stats
+ monitored_instance:
+ name: net.inet6.icmp6.stats
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information abou IPv6 ICMP"
+ method_description: "The plugin calls `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:net.inet6.icmp6.stats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: icmp
+ description: Enable or disable ICMP metric.
+ default_value: auto
+ required: false
+ - name: icmp redirects
+ description: Enable or disable ICMP redirects metric.
+ default_value: auto
+ required: false
+ - name: icmp errors
+ description: Enable or disable ICMP errors metric.
+ default_value: auto
+ required: false
+ - name: icmp echos
+ description: Enable or disable ICMP echos metric.
+ default_value: auto
+ required: false
+ - name: icmp router
+ description: Enable or disable ICMP router metric.
+ default_value: auto
+ required: false
+ - name: icmp neighbor
+ description: Enable or disable ICMP neighbor metric.
+ default_value: auto
+ required: false
+ - name: icmp types
+ description: Enable or disable ICMP types metric.
+ default_value: auto
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "Collect IPv6 ICMP traffic statistics."
+ labels: []
+ metrics:
+ - name: ipv6.icmp
+ description: IPv6 ICMP Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmpredir
+ description: IPv6 ICMP Redirects
+ unit: "redirects/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmperrors
+ description: IPv6 ICMP Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: InDestUnreachs
+ - name: InPktTooBigs
+ - name: InTimeExcds
+ - name: InParmProblems
+ - name: OutDestUnreachs
+ - name: OutTimeExcds
+ - name: OutParmProblems
+ - name: ipv6.icmpechos
+ description: IPv6 ICMP Echo
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InEchos
+ - name: OutEchos
+ - name: InEchoReplies
+ - name: OutEchoReplies
+ - name: ipv6.icmprouter
+ description: IPv6 Router Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmpneighbor
+ description: IPv6 Neighbor Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmptypes
+ description: IPv6 ICMP Types
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InType1
+ - name: InType128
+ - name: InType129
+ - name: InType136
+ - name: OutType1
+ - name: OutType128
+ - name: OutType129
+ - name: OutType133
+ - name: OutType135
+ - name: OutType143
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: ipfw
+ monitored_instance:
+ name: ipfw
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "firewall.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information about FreeBSD firewall."
+ method_description: "The plugin uses RAW socket to communicate with kernel and collect data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:ipfw]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: counters for static rules
+ description: Enable or disable counters for static rules metric.
+ default_value: yes
+ required: false
+ - name: number of dynamic rules
+ description: Enable or disable number of dynamic rules metric.
+ default_value: yes
+ required: false
+ - name: allocated memory
+ description: Enable or disable allocated memory metric.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "Theese metrics show FreeBSD firewall statistics."
+ labels: []
+ metrics:
+ - name: ipfw.mem
+ description: Memory allocated by rules
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: dynamic
+ - name: static
+ - name: ipfw.packets
+ description: Packets
+ unit: "packets/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per static rule
+ - name: ipfw.bytes
+ description: Bytes
+ unit: "bytes/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per static rule
+ - name: ipfw.active
+ description: Active rules
+ unit: "rules"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per dynamic rule
+ - name: ipfw.expired
+ description: Expired rules
+ unit: "rules"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per dynamic rule
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: getifaddrs
+ monitored_instance:
+ name: getifaddrs
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "network.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect traffic per network interface."
+ method_description: "The plugin calls `getifaddrs` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:getifaddrs]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: enable new interfaces detected at runtime
+ description: Enable or disable possibility to discover new interface after plugin starts.
+ default_value: auto
+ required: false
+ - name: total bandwidth for physical interfaces
+ description: Enable or disable total bandwidth for physical interfaces metric.
+ default_value: auto
+ required: false
+ - name: total packets for physical interfaces
+ description: Enable or disable total packets for physical interfaces metric.
+ default_value: auto
+ required: false
+ - name: total bandwidth for ipv4 interface
+ description: Enable or disable total bandwidth for IPv4 interface metric.
+ default_value: auto
+ required: false
+ - name: total bandwidth for ipv6 interfaces
+ description: Enable or disable total bandwidth for ipv6 interfaces metric.
+ default_value: auto
+ required: false
+ - name: bandwidth for all interfaces
+ description: Enable or disable bandwidth for all interfaces metric.
+ default_value: auto
+ required: false
+ - name: packets for all interfaces
+ description: Enable or disable packets for all interfaces metric.
+ default_value: auto
+ required: false
+ - name: errors for all interfaces
+ description: Enable or disable errors for all interfaces metric.
+ default_value: auto
+ required: false
+ - name: drops for all interfaces
+ description: Enable or disable drops for all interfaces metric.
+ default_value: auto
+ required: false
+ - name: collisions for all interface
+ description: Enable or disable collisions for all interface metric.
+ default_value: auto
+ required: false
+ - name: disable by default interfaces matching
+ description: Do not display data for intterfaces listed.
+ default_value: lo*
+ required: false
+ - name: set physical interfaces for system.net
+ description: Do not show network traffic for listed interfaces.
+ default_value: igb* ix* cxl* em* ixl* ixlv* bge* ixgbe* vtnet* vmx* re* igc* dwc*
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: interface_speed
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: network interface ${label:device} current speed
+ os: "*"
+ - name: 1m_received_traffic_overflow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: average inbound utilization for the network interface ${label:device} over the last minute
+ os: "linux"
+ - name: 1m_sent_traffic_overflow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: average outbound utilization for the network interface ${label:device} over the last minute
+ os: "linux"
+ - name: inbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: outbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: wifi_inbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: wifi_outbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: 1m_received_packets_rate
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: average number of packets received by the network interface ${label:device} over the last minute
+ os: "linux freebsd"
+ - name: 10s_received_packets_storm
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info:
+ ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
+ the last minute
+ os: "linux freebsd"
+ - name: interface_inbound_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.errors
+ info: number of inbound errors for the network interface ${label:device} in the last 10 minutes
+ os: "freebsd"
+ - name: interface_outbound_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.errors
+ info: number of outbound errors for the network interface ${label:device} in the last 10 minutes
+ os: "freebsd"
+ - name: inbound_packets_dropped
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.drops
+ info: number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes
+ os: "linux"
+ - name: outbound_packets_dropped
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.drops
+ info: number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "General overview about network traffic."
+ labels: []
+ metrics:
+ - name: system.net
+ description: Network Traffic
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: system.packets
+ description: Network Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast_received
+ - name: multicast_sent
+ - name: system.ipv4
+ description: IPv4 Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: system.ipv6
+ description: IPv6 Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: network device
+ description: ""
+ labels: []
+ metrics:
+ - name: net.net
+ description: Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: net.packets
+ description: Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast_received
+ - name: multicast_sent
+ - name: net.errors
+ description: Interface Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: net.drops
+ description: Interface Drops
+ unit: "drops/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: net.events
+ description: Network Interface Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: collisions
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: getmntinfo
+ monitored_instance:
+ name: getmntinfo
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect information per mount point."
+ method_description: "The plugin calls `getmntinfo` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:getmntinfo]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: enable new mount points detected at runtime
+ description: Cheeck new mount points during runtime.
+ default_value: auto
+ required: false
+ - name: space usage for all disks
+ description: Enable or disable space usage for all disks metric.
+ default_value: auto
+ required: false
+ - name: inodes usage for all disks
+ description: Enable or disable inodes usage for all disks metric.
+ default_value: auto
+ required: false
+ - name: exclude space metrics on paths
+ description: Do not show metrics for listed paths.
+ default_value: /proc/*
+ required: false
+ - name: exclude space metrics on filesystems
+ description: Do not monitor listed filesystems.
+ default_value: autofs procfs subfs devfs none
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: disk_space_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.space
+ info: disk ${label:mount_point} space utilization
+ os: "linux freebsd"
+ - name: disk_inode_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.inodes
+ info: disk ${label:mount_point} inode utilization
+ os: "linux freebsd"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: mount point
+ description: "These metrics show detailss about mount point usages."
+ labels: []
+ metrics:
+ - name: disk.space
+ description: Disk Space Usage for {mounted dir} [{mounted filesystem}]
+ unit: "GiB"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
+ - name: disk.inodes
+ description: Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]
+ unit: "inodes"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
+ - meta:
+ plugin_name: freebsd.plugin
+ module_name: zfs
+ monitored_instance:
+ name: zfs
+ link: "https://www.freebsd.org/"
+ categories:
+ - data-collection.freebsd
+ icon_filename: "filesystem.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Collect metrics for ZFS filesystem"
+ method_description: "The plugin uses `sysctl` function to collect necessary data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:freebsd:zfs_arcstats]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: show zero charts
+ description: Do not show charts with zero metrics.
+ default_value: no
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: zfs_memory_throttle
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
+ metric: zfs.memory_ops
+ info: number of times ZFS had to limit the ARC growth in the last 10 minutes
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics show detailed information about ZFS filesystem."
+ labels: []
+ metrics:
+ - name: zfs.arc_size
+ description: ZFS ARC Size
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: arcsz
+ - name: target
+ - name: min
+ - name: max
+ - name: zfs.l2_size
+ description: ZFS L2 ARC Size
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: actual
+ - name: size
+ - name: zfs.reads
+ description: ZFS Reads
+ unit: "reads/s"
+ chart_type: area
+ dimensions:
+ - name: arc
+ - name: demand
+ - name: prefetch
+ - name: metadata
+ - name: l2
+ - name: zfs.bytes
+ description: ZFS ARC L2 Read/Write Rate
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: zfs.hits
+ description: ZFS ARC Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.hits_rate
+ description: ZFS ARC Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.dhits
+ description: ZFS Demand Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.dhits_rate
+ description: ZFS Demand Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.phits
+ description: ZFS Prefetch Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.phits_rate
+ description: ZFS Prefetch Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.mhits
+ description: ZFS Metadata Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.mhits_rate
+ description: ZFS Metadata Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.l2hits
+ description: ZFS L2 Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.l2hits_rate
+ description: ZFS L2 Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.list_hits
+ description: ZFS List Hits
+ unit: "hits/s"
+ chart_type: area
+ dimensions:
+ - name: mfu
+ - name: mfu_ghost
+ - name: mru
+ - name: mru_ghost
+ - name: zfs.arc_size_breakdown
+ description: ZFS ARC Size Breakdown
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: recent
+ - name: frequent
+ - name: zfs.memory_ops
+ description: ZFS Memory Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: throttled
+ - name: zfs.important_ops
+ description: ZFS Important Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: evict_skip
+ - name: deleted
+ - name: mutex_miss
+ - name: hash_collisions
+ - name: zfs.actual_hits
+ description: ZFS Actual Cache Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.actual_hits_rate
+ description: ZFS Actual Cache Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.demand_data_hits
+ description: ZFS Data Demand Efficiency
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.demand_data_hits_rate
+ description: ZFS Data Demand Efficiency Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.prefetch_data_hits
+ description: ZFS Data Prefetch Efficiency
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.prefetch_data_hits_rate
+ description: ZFS Data Prefetch Efficiency Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.hash_elements
+ description: ZFS ARC Hash Elements
+ unit: "elements"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: max
+ - name: zfs.hash_chains
+ description: ZFS ARC Hash Chains
+ unit: "chains"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: max
+ - name: zfs.trim_bytes
+ description: Successfully TRIMmed bytes
+ unit: "bytes"
+ chart_type: line
+ dimensions:
+ - name: TRIMmed
+ - name: zfs.trim_requests
+ description: TRIM requests
+ unit: "requests"
+ chart_type: line
+ dimensions:
+ - name: successful
+ - name: failed
+ - name: unsupported
diff --git a/collectors/freebsd.plugin/metrics.csv b/collectors/freebsd.plugin/metrics.csv
deleted file mode 100644
index 3c02a4c23..000000000
--- a/collectors/freebsd.plugin/metrics.csv
+++ /dev/null
@@ -1,112 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.load,,"load1, load5, load15",load,"System Load Average",line,,freebsd.plugin,vm.loadavg
-system.active_processes,,active,processes,"System Active Processes",line,,freebsd.plugin,vm.vmtotal
-system.processes,,"running, blocked",processes,"System Processes",line,,freebsd.plugin,vm.vmtotal
-mem.real,,used,MiB,"Total Real Memory In Use",area,,freebsd.plugin,vm.vmtotal
-system.cpu,,"nice, system, user, interrupt, idle",percentage,"Total CPU utilization",stacked,,freebsd.plugin,kern.cp_time
-cpu.cpu,core,"nice, system, user, interrupt, idle",percentage,"Core utilization",stacked,,freebsd.plugin,kern.cp_time
-cpu.temperature,,a dimension per core,Celsius,"Core temperature",line,,freebsd.plugin,dev.cpu.temperature
-cpu.scaling_cur_freq,,frequency,MHz,"Current CPU Scaling Frequency",line,,freebsd.plugin,dev.cpu.0.freq
-system.intr,,interrupts,interrupts/s,"Total Hardware Interrupts",line,,freebsd.plugin,hw.intrcnt
-system.interrupts,,a dimension per interrupt,interrupts/s,"System interrupts",stacked,,freebsd.plugin,hw.intrcnt
-system.dev_intr,,interrupts,interrupts/s,"Device Interrupts",line,,freebsd.plugin,vm.stats.sys.v_intr
-system.soft_intr,,interrupts,interrupts/s,"Software Interrupts",line,,freebsd.plugin,vm.stats.sys.v_soft
-system.ctxt,,switches,context switches/s,"CPU Context Switches",line,,freebsd.plugin,vm.stats.sys.v_swtch
-system.forks,,started,processes/s,"Started Processes",line,,freebsd.plugin,vm.stats.sys.v_swtch
-system.swap,,"free, used",MiB,"System Swap",stacked,,freebsd.plugin,vm.swap_info
-system.ram,,"free, active, inactive, wired, cache, laundry, buffers",MiB,"System RAM",stacked,,freebsd.plugin,system.ram
-mem.available,,avail,MiB,"Available RAM for applications",line,,freebsd.plugin,system.ram
-system.swapio,,"io, out",KiB/s,"Swap I/O",area,,freebsd.plugin,vm.stats.vm.v_swappgs
-mem.pgfaults,,"memory, io_requiring, cow, cow_optimized, in_transit",page faults/s,"Memory Page Faults",line,,freebsd.plugin,vm.stats.vm.v_pgfaults
-system.ipc_semaphores,,semaphores,semaphores,"IPC Semaphores",area,,freebsd.plugin,kern.ipc.sem
-system.ipc_semaphore_arrays,,arrays,arrays,"IPC Semaphore Arrays",area,,freebsd.plugin,kern.ipc.sem
-system.ipc_shared_mem_segs,,segments,segments,"IPC Shared Memory Segments",area,,freebsd.plugin,kern.ipc.shm
-system.ipc_shared_mem_size,,allocated,KiB,"IPC Shared Memory Segments Size",area,,freebsd.plugin,kern.ipc.shm
-system.ipc_msq_queues,,queues,queues,"Number of IPC Message Queues",area,,freebsd.plugin,kern.ipc.msq
-system.ipc_msq_messages,,messages,messages,"Number of Messages in IPC Message Queues",area,,freebsd.plugin,kern.ipc.msq
-system.ipc_msq_size,,"allocated, used",bytes,"Size of IPC Message Queues",line,,freebsd.plugin,kern.ipc.msq
-system.uptime,,uptime,seconds,"System Uptime",line,,freebsd.plugin,uptime
-system.softnet_stat,,"dispatched, hybrid_dispatched, qdrops, queued",events/s,"System softnet_stat",line,,freebsd.plugin,net.isr
-cpu.softnet_stat,core,"dispatched, hybrid_dispatched, qdrops, queued",events/s,"Per CPU netisr statistics",line,,freebsd.plugin,net.isr
-system.io,,"io, out",KiB/s,"Disk I/O",area,,freebsd.plugin,devstat
-disk.io,disk,"reads, writes, frees",KiB/s,"Disk I/O Bandwidth",area,,freebsd.plugin,devstat
-disk.ops,disk,"reads, writes, other, frees",operations/s,"Disk Completed I/O Operations",line,,freebsd.plugin,devstat
-disk.qops,disk,operations,operations,"Disk Current I/O Operations",line,,freebsd.plugin,devstat
-disk.util,disk,utilization,% of time working,"Disk Utilization Time",line,,freebsd.plugin,devstat
-disk.iotime,disk,"reads, writes, other, frees",milliseconds/s,"Disk Total I/O Time",line,,freebsd.plugin,devstat
-disk.await,disk,"reads, writes, other, frees",milliseconds/operation,"Average Completed I/O Operation Time",line,,freebsd.plugin,devstat
-disk.avgsz,disk,"reads, writes, frees",KiB/operation,"Average Completed I/O Operation Bandwidth",area,,freebsd.plugin,devstat
-disk.svctm,disk,svctm,milliseconds/operation,"Average Service Time",line,,freebsd.plugin,devstat
-ipv4.tcpsock,,connections,active connections,"IPv4 TCP Connections",line,,freebsd.plugin,net.inet.tcp.states
-ipv4.tcppackets,,"received, sent",packets/s,"IPv4 TCP Packets",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcperrors,,"InErrs, InCsumErrors, RetransSegs",packets/s,"IPv4 TCP Errors",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcphandshake,,"EstabResets, ActiveOpens, PassiveOpens, AttemptFails",events/s,"IPv4 TCP Handshake Issues",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcpconnaborts,,"baddata, userclosed, nomemory, timeout, linger",connections/s,"TCP Connection Aborts",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcpofo,,inqueue,packets/s,"TCP Out-Of-Order Queue",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcpsyncookies,,"received, sent, failed",packets/s,"TCP SYN Cookies",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.tcplistenissues,,overflows,packets/s,"TCP Listen Socket Issues",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.ecnpkts,,"InCEPkts, InECT0Pkts, InECT1Pkts, OutECT0Pkts, OutECT1Pkts",packets/s,"IPv4 ECN Statistics",line,,freebsd.plugin,net.inet.tcp.stats
-ipv4.udppackets,,"received, sent",packets/s,"IPv4 UDP Packets",line,,freebsd.plugin,net.inet.udp.stats
-ipv4.udperrors,,"InErrors, NoPorts, RcvbufErrors, InCsumErrors, IgnoredMulti",events/s,"IPv4 UDP Errors",line,,freebsd.plugin,net.inet.udp.stats
-ipv4.icmp,,"received, sent",packets/s,"IPv4 ICMP Packets",line,,freebsd.plugin,net.inet.icmp.stats
-ipv4.icmp_errors,,"InErrors, OutErrors, InCsumErrors",packets/s,"IPv4 ICMP Errors",line,,freebsd.plugin,net.inet.icmp.stats
-ipv4.icmpmsg,,"InEchoReps, OutEchoReps, InEchos, OutEchos",packets/s,"IPv4 ICMP Messages",line,,freebsd.plugin,net.inet.icmp.stats
-ipv4.packets,,"received, sent, forwarded, delivered",packets/s,"IPv4 Packets",line,,freebsd.plugin,net.inet.ip.stats
-ipv4.fragsout,,"ok, failed, created",packets/s,"IPv4 Fragments Sent",line,,freebsd.plugin,net.inet.ip.stats
-ipv4.fragsin,,"ok, failed, all",packets/s,"IPv4 Fragments Reassembly",line,,freebsd.plugin,net.inet.ip.stats
-ipv4.errors,,"InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos",packets/s,"IPv4 Errors",line,,freebsd.plugin,net.inet.ip.stats
-ipv6.packets,,"received, sent, forwarded, delivers",packets/s,"IPv6 Packets",line,,freebsd.plugin,net.inet6.ip6.stats
-ipv6.fragsout,,"ok, failed, all",packets/s,"IPv6 Fragments Sent",line,,freebsd.plugin,net.inet6.ip6.stats
-ipv6.fragsin,,"ok, failed, timeout, all",packets/s,"IPv6 Fragments Reassembly",line,,freebsd.plugin,net.inet6.ip6.stats
-ipv6.errors,,"InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes",packets/s,"IPv6 Errors",line,,freebsd.plugin,net.inet6.ip6.stats
-ipv6.icmp,,"received, sent",messages/s,"IPv6 ICMP Messages",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmpredir,,"received, sent",redirects/s,"IPv6 ICMP Redirects",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmperrors,,"InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems",errors/s,"IPv6 ICMP Errors",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmpechos,,"InEchos, OutEchos, InEchoReplies, OutEchoReplies",messages/s,"IPv6 ICMP Echo",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmprouter,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,"IPv6 Router Messages",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmpneighbor,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,"IPv6 Neighbor Messages",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipv6.icmptypes,,"InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143",messages/s,"IPv6 ICMP Types",line,,freebsd.plugin,net.inet6.icmp6.stats
-ipfw.mem,,"dynamic, static",bytes,"Memory allocated by rules",stacked,,freebsd.plugin,ipfw
-ipfw.packets,,a dimension per static rule,packets/s,"Packets",stacked,,freebsd.plugin,ipfw
-ipfw.bytes,,a dimension per static rule,bytes/s,"Bytes",stacked,,freebsd.plugin,ipfw
-ipfw.active,,a dimension per dynamic rule,rules,"Active rules",stacked,,freebsd.plugin,ipfw
-ipfw.expired,,a dimension per dynamic rule,rules,"Expired rules",stacked,,freebsd.plugin,ipfw
-system.net,,"received, sent",kilobits/s,"Network Traffic",area,,freebsd.plugin,getifaddrs
-system.packets,,"received, sent, multicast_received, multicast_sent",packets/s,"Network Packets",line,,freebsd.plugin,getifaddrs
-system.ipv4,,"received, sent",kilobits/s,"IPv4 Bandwidth",area,,freebsd.plugin,getifaddrs
-system.ipv6,,"received, sent",kilobits/s,"IPv6 Bandwidth",area,,freebsd.plugin,getifaddrs
-net.net,network device,"received, sent",kilobits/s,"Bandwidth",area,,freebsd.plugin,getifaddrs
-net.packets,network device,"received, sent, multicast_received, multicast_sent",packets/s,"Packets",line,,freebsd.plugin,getifaddrs
-net.errors,network device,"inbound, outbound",errors/s,"Interface Errors",line,,freebsd.plugin,getifaddrs
-net.drops,network device,"inbound, outbound",drops/s,"Interface Drops",line,,freebsd.plugin,getifaddrs
-net.events,network device,collisions,events/s,"Network Interface Events",line,,freebsd.plugin,getifaddrs
-disk.space,mount point,"avail, used, reserved_for_root",GiB,"Disk Space Usage for {mounted dir} [{mounted filesystem}]",stacked,,freebsd.plugin,getmntinfo
-disk.inodes,mount point,"avail, used, reserved_for_root",inodes,"Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]",stacked,,freebsd.plugin,getmntinfo
-zfs.arc_size,,"arcsz, target, min, max",MiB,"ZFS ARC Size",area,,freebsd.plugin,zfs
-zfs.l2_size,,"actual, size",MiB,"ZFS L2 ARC Size",area,,freebsd.plugin,zfs
-zfs.reads,,"arc, demand, prefetch, metadata, l2",reads/s,"ZFS Reads",area,,freebsd.plugin,zfs
-zfs.bytes,,"read, write",KiB/s,"ZFS ARC L2 Read/Write Rate",area,,freebsd.plugin,zfs
-zfs.hits,,"hits, misses",percentage,"ZFS ARC Hits",stacked,,freebsd.plugin,zfs
-zfs.hits_rate,,"hits, misses",events/s,"ZFS ARC Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.dhits,,"hits, misses",percentage,"ZFS Demand Hits",stacked,,freebsd.plugin,zfs
-zfs.dhits_rate,,"hits, misses",events/s,"ZFS Demand Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.phits,,"hits, misses",percentage,"ZFS Prefetch Hits",stacked,,freebsd.plugin,zfs
-zfs.phits_rate,,"hits, misses",events/s,"ZFS Prefetch Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.mhits,,"hits, misses",percentage,"ZFS Metadata Hits",stacked,,freebsd.plugin,zfs
-zfs.mhits_rate,,"hits, misses",events/s,"ZFS Metadata Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.l2hits,,"hits, misses",percentage,"ZFS L2 Hits",stacked,,freebsd.plugin,zfs
-zfs.l2hits_rate,,"hits, misses",events/s,"ZFS L2 Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.list_hits,,"mfu, mfu_ghost, mru, mru_ghost",hits/s,"ZFS List Hits",area,,freebsd.plugin,zfs
-zfs.arc_size_breakdown,,"recent, frequent",percentage,"ZFS ARC Size Breakdown",stacked,,freebsd.plugin,zfs
-zfs.memory_ops,,throttled,operations/s,"ZFS Memory Operations",line,,freebsd.plugin,zfs
-zfs.important_ops,,"evict_skip, deleted, mutex_miss, hash_collisions",operations/s,"ZFS Important Operations",line,,freebsd.plugin,zfs
-zfs.actual_hits,,"hits, misses",percentage,"ZFS Actual Cache Hits",stacked,,freebsd.plugin,zfs
-zfs.actual_hits_rate,,"hits, misses",events/s,"ZFS Actual Cache Hits Rate",stacked,,freebsd.plugin,zfs
-zfs.demand_data_hits,,"hits, misses",percentage,"ZFS Data Demand Efficiency",stacked,,freebsd.plugin,zfs
-zfs.demand_data_hits_rate,,"hits, misses",events/s,"ZFS Data Demand Efficiency Rate",stacked,,freebsd.plugin,zfs
-zfs.prefetch_data_hits,,"hits, misses",percentage,"ZFS Data Prefetch Efficiency",stacked,,freebsd.plugin,zfs
-zfs.prefetch_data_hits_rate,,"hits, misses",events/s,"ZFS Data Prefetch Efficiency Rate",stacked,,freebsd.plugin,zfs
-zfs.hash_elements,,"current, max",elements,"ZFS ARC Hash Elements",line,,freebsd.plugin,zfs
-zfs.hash_chains,,"current, max",chains,"ZFS ARC Hash Chains",line,,freebsd.plugin,zfs
-zfs.trim_bytes,,TRIMmed,bytes,"Successfully TRIMmed bytes",line,,freebsd.plugin,zfs
-zfs.trim_requests,,"successful, failed, unsupported",requests,"TRIM requests",line,,freebsd.plugin,zfs
diff --git a/collectors/freebsd.plugin/multi_metadata.yaml b/collectors/freebsd.plugin/multi_metadata.yaml
deleted file mode 100644
index 6928df644..000000000
--- a/collectors/freebsd.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,3031 +0,0 @@
-name: freebsd.plugin
-modules:
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.loadavg
- monitored_instance:
- name: freebsd vm.loadavg
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: load_cpu_number
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: number of active CPU cores in the system
- os: "linux"
- - name: load_average_15
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system fifteen-minute load average
- os: "linux"
- - name: load_average_5
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system five-minute load average
- os: "linux"
- - name: load_average_1
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system one-minute load average
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.load
- description: System Load Average
- unit: "load"
- chart_type: line
- dimensions:
- - name: load1
- - name: load5
- - name: load15
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.vmtotal
- monitored_instance:
- name: freebsd vm.vmtotal
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: active_processes
- link: https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf
- metric: system.active_processes
- info: system process IDs (PID) space utilization
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.active_processes
- description: System Active Processes
- unit: "processes"
- chart_type: line
- dimensions:
- - name: active
- - name: system.processes
- description: System Processes
- unit: "processes"
- chart_type: line
- dimensions:
- - name: running
- - name: blocked
- - name: mem.real
- description: Total Real Memory In Use
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: used
- - meta:
- plugin_name: freebsd.plugin
- module_name: kern.cp_time
- monitored_instance:
- name: freebsd kern.cp_time
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
- os: "linux"
- - name: 10min_cpu_iowait
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU iowait time over the last 10 minutes
- os: "linux"
- - name: 20min_steal_cpu
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU steal time over the last 20 minutes
- os: "linux"
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding nice)
- os: "freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.cpu
- description: Total CPU utilization
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: nice
- - name: system
- - name: user
- - name: interrupt
- - name: idle
- - name: core
- description: ""
- labels: []
- metrics:
- - name: cpu.cpu
- description: Core utilization
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: nice
- - name: system
- - name: user
- - name: interrupt
- - name: idle
- - meta:
- plugin_name: freebsd.plugin
- module_name: dev.cpu.temperature
- monitored_instance:
- name: freebsd dev.cpu.temperature
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: cpu.temperature
- description: Core temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: a dimension per core
- - meta:
- plugin_name: freebsd.plugin
- module_name: dev.cpu.0.freq
- monitored_instance:
- name: freebsd dev.cpu.0.freq
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: cpu.scaling_cur_freq
- description: Current CPU Scaling Frequency
- unit: "MHz"
- chart_type: line
- dimensions:
- - name: frequency
- - meta:
- plugin_name: freebsd.plugin
- module_name: hw.intrcnt
- monitored_instance:
- name: freebsd hw.intrcnt
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.intr
- description: Total Hardware Interrupts
- unit: "interrupts/s"
- chart_type: line
- dimensions:
- - name: interrupts
- - name: system.interrupts
- description: System interrupts
- unit: "interrupts/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per interrupt
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.stats.sys.v_intr
- monitored_instance:
- name: freebsd vm.stats.sys.v_intr
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.dev_intr
- description: Device Interrupts
- unit: "interrupts/s"
- chart_type: line
- dimensions:
- - name: interrupts
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.stats.sys.v_soft
- monitored_instance:
- name: freebsd vm.stats.sys.v_soft
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.soft_intr
- description: Software Interrupts
- unit: "interrupts/s"
- chart_type: line
- dimensions:
- - name: interrupts
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.stats.sys.v_swtch
- monitored_instance:
- name: freebsd vm.stats.sys.v_swtch
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ctxt
- description: CPU Context Switches
- unit: "context switches/s"
- chart_type: line
- dimensions:
- - name: switches
- - name: system.forks
- description: Started Processes
- unit: "processes/s"
- chart_type: line
- dimensions:
- - name: started
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.swap_info
- monitored_instance:
- name: freebsd vm.swap_info
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: used_swap
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swap
- info: swap memory utilization
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.swap
- description: System Swap
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - meta:
- plugin_name: freebsd.plugin
- module_name: system.ram
- monitored_instance:
- name: freebsd system.ram
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "linux"
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "freebsd"
- - name: ram_available
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: mem.available
- info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- os: "linux"
- - name: ram_available
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: mem.available
- info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- os: "freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ram
- description: System RAM
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: active
- - name: inactive
- - name: wired
- - name: cache
- - name: laundry
- - name: buffers
- - name: mem.available
- description: Available RAM for applications
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: avail
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.stats.vm.v_swappgs
- monitored_instance:
- name: freebsd vm.stats.vm.v_swappgs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 30min_ram_swapped_out
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swapio
- info: percentage of the system RAM swapped in the last 30 minutes
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.swapio
- description: Swap I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: io
- - name: out
- - meta:
- plugin_name: freebsd.plugin
- module_name: vm.stats.vm.v_pgfaults
- monitored_instance:
- name: freebsd vm.stats.vm.v_pgfaults
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mem.pgfaults
- description: Memory Page Faults
- unit: "page faults/s"
- chart_type: line
- dimensions:
- - name: memory
- - name: io_requiring
- - name: cow
- - name: cow_optimized
- - name: in_transit
- - meta:
- plugin_name: freebsd.plugin
- module_name: kern.ipc.sem
- monitored_instance:
- name: freebsd kern.ipc.sem
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: semaphores_used
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
- metric: system.ipc_semaphores
- info: IPC semaphore utilization
- os: "linux"
- - name: semaphore_arrays_used
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
- metric: system.ipc_semaphore_arrays
- info: IPC semaphore arrays utilization
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ipc_semaphores
- description: IPC Semaphores
- unit: "semaphores"
- chart_type: area
- dimensions:
- - name: semaphores
- - name: system.ipc_semaphore_arrays
- description: IPC Semaphore Arrays
- unit: "arrays"
- chart_type: area
- dimensions:
- - name: arrays
- - meta:
- plugin_name: freebsd.plugin
- module_name: kern.ipc.shm
- monitored_instance:
- name: freebsd kern.ipc.shm
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ipc_shared_mem_segs
- description: IPC Shared Memory Segments
- unit: "segments"
- chart_type: area
- dimensions:
- - name: segments
- - name: system.ipc_shared_mem_size
- description: IPC Shared Memory Segments Size
- unit: "KiB"
- chart_type: area
- dimensions:
- - name: allocated
- - meta:
- plugin_name: freebsd.plugin
- module_name: kern.ipc.msq
- monitored_instance:
- name: freebsd kern.ipc.msq
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ipc_msq_queues
- description: Number of IPC Message Queues
- unit: "queues"
- chart_type: area
- dimensions:
- - name: queues
- - name: system.ipc_msq_messages
- description: Number of Messages in IPC Message Queues
- unit: "messages"
- chart_type: area
- dimensions:
- - name: messages
- - name: system.ipc_msq_size
- description: Size of IPC Message Queues
- unit: "bytes"
- chart_type: line
- dimensions:
- - name: allocated
- - name: used
- - meta:
- plugin_name: freebsd.plugin
- module_name: uptime
- monitored_instance:
- name: freebsd uptime
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.uptime
- description: System Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.isr
- monitored_instance:
- name: freebsd net.isr
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1min_netdev_backlog_exceeded
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog
- os: "linux"
- - name: 1min_netdev_budget_ran_outs
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets)
- os: "linux"
- - name: 10min_netisr_backlog_exceeded
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of drops in the last minute due to exceeded sysctl net.route.netisr_maxqlen (this can be a cause for dropped packets)
- os: "freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.softnet_stat
- description: System softnet_stat
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: dispatched
- - name: hybrid_dispatched
- - name: qdrops
- - name: queued
- - name: core
- description: ""
- labels: []
- metrics:
- - name: cpu.softnet_stat
- description: Per CPU netisr statistics
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: dispatched
- - name: hybrid_dispatched
- - name: qdrops
- - name: queued
- - meta:
- plugin_name: freebsd.plugin
- module_name: devstat
- monitored_instance:
- name: freebsd devstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_disk_utilization
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.util
- info: average percentage of time ${label:device} disk was busy over the last 10 minutes
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.io
- description: Disk I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: io
- - name: out
- - name: disk
- description: ""
- labels: []
- metrics:
- - name: disk.io
- description: Disk I/O Bandwidth
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: reads
- - name: writes
- - name: frees
- - name: disk.ops
- description: Disk Completed I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: other
- - name: frees
- - name: disk.qops
- description: Disk Current I/O Operations
- unit: "operations"
- chart_type: line
- dimensions:
- - name: operations
- - name: disk.util
- description: Disk Utilization Time
- unit: "% of time working"
- chart_type: line
- dimensions:
- - name: utilization
- - name: disk.iotime
- description: Disk Total I/O Time
- unit: "milliseconds/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: other
- - name: frees
- - name: disk.await
- description: Average Completed I/O Operation Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: other
- - name: frees
- - name: disk.avgsz
- description: Average Completed I/O Operation Bandwidth
- unit: "KiB/operation"
- chart_type: area
- dimensions:
- - name: reads
- - name: writes
- - name: frees
- - name: disk.svctm
- description: Average Service Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: svctm
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet.tcp.states
- monitored_instance:
- name: freebsd net.inet.tcp.states
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: tcp_connections
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf
- metric: ipv4.tcpsock
- info: IPv4 TCP connections utilization
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.tcpsock
- description: IPv4 TCP Connections
- unit: "active connections"
- chart_type: line
- dimensions:
- - name: connections
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet.tcp.stats
- monitored_instance:
- name: freebsd net.inet.tcp.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1m_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last minute
- os: "linux"
- - name: 10s_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux"
- - name: 1m_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last minute
- os: "linux freebsd"
- - name: 10s_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.tcppackets
- description: IPv4 TCP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.tcperrors
- description: IPv4 TCP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrs
- - name: InCsumErrors
- - name: RetransSegs
- - name: ipv4.tcphandshake
- description: IPv4 TCP Handshake Issues
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: EstabResets
- - name: ActiveOpens
- - name: PassiveOpens
- - name: AttemptFails
- - name: ipv4.tcpconnaborts
- description: TCP Connection Aborts
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: baddata
- - name: userclosed
- - name: nomemory
- - name: timeout
- - name: linger
- - name: ipv4.tcpofo
- description: TCP Out-Of-Order Queue
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: inqueue
- - name: ipv4.tcpsyncookies
- description: TCP SYN Cookies
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: failed
- - name: ipv4.tcplistenissues
- description: TCP Listen Socket Issues
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: overflows
- - name: ipv4.ecnpkts
- description: IPv4 ECN Statistics
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InCEPkts
- - name: InECT0Pkts
- - name: InECT1Pkts
- - name: OutECT0Pkts
- - name: OutECT1Pkts
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet.udp.stats
- monitored_instance:
- name: freebsd net.inet.udp.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1m_ipv4_udp_receive_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP receive buffer errors over the last minute
- os: "linux freebsd"
- - name: 1m_ipv4_udp_send_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP send buffer errors over the last minute
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.udppackets
- description: IPv4 UDP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.udperrors
- description: IPv4 UDP Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: NoPorts
- - name: RcvbufErrors
- - name: InCsumErrors
- - name: IgnoredMulti
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet.icmp.stats
- monitored_instance:
- name: freebsd net.inet.icmp.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.icmp
- description: IPv4 ICMP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.icmp_errors
- description: IPv4 ICMP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: ipv4.icmpmsg
- description: IPv4 ICMP Messages
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InEchoReps
- - name: OutEchoReps
- - name: InEchos
- - name: OutEchos
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet.ip.stats
- monitored_instance:
- name: freebsd net.inet.ip.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.packets
- description: IPv4 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivered
- - name: ipv4.fragsout
- description: IPv4 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: created
- - name: ipv4.fragsin
- description: IPv4 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv4.errors
- description: IPv4 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: OutNoRoutes
- - name: InAddrErrors
- - name: InUnknownProtos
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet6.ip6.stats
- monitored_instance:
- name: freebsd net.inet6.ip6.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv6.packets
- description: IPv6 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivers
- - name: ipv6.fragsout
- description: IPv6 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv6.fragsin
- description: IPv6 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: timeout
- - name: all
- - name: ipv6.errors
- description: IPv6 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: InAddrErrors
- - name: InTruncatedPkts
- - name: InNoRoutes
- - name: OutNoRoutes
- - meta:
- plugin_name: freebsd.plugin
- module_name: net.inet6.icmp6.stats
- monitored_instance:
- name: freebsd net.inet6.icmp6.stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv6.icmp
- description: IPv6 ICMP Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmpredir
- description: IPv6 ICMP Redirects
- unit: "redirects/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmperrors
- description: IPv6 ICMP Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: InDestUnreachs
- - name: InPktTooBigs
- - name: InTimeExcds
- - name: InParmProblems
- - name: OutDestUnreachs
- - name: OutTimeExcds
- - name: OutParmProblems
- - name: ipv6.icmpechos
- description: IPv6 ICMP Echo
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InEchos
- - name: OutEchos
- - name: InEchoReplies
- - name: OutEchoReplies
- - name: ipv6.icmprouter
- description: IPv6 Router Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmpneighbor
- description: IPv6 Neighbor Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmptypes
- description: IPv6 ICMP Types
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InType1
- - name: InType128
- - name: InType129
- - name: InType136
- - name: OutType1
- - name: OutType128
- - name: OutType129
- - name: OutType133
- - name: OutType135
- - name: OutType143
- - meta:
- plugin_name: freebsd.plugin
- module_name: ipfw
- monitored_instance:
- name: freebsd ipfw
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipfw.mem
- description: Memory allocated by rules
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: dynamic
- - name: static
- - name: ipfw.packets
- description: Packets
- unit: "packets/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per static rule
- - name: ipfw.bytes
- description: Bytes
- unit: "bytes/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per static rule
- - name: ipfw.active
- description: Active rules
- unit: "rules"
- chart_type: stacked
- dimensions:
- - name: a dimension per dynamic rule
- - name: ipfw.expired
- description: Expired rules
- unit: "rules"
- chart_type: stacked
- dimensions:
- - name: a dimension per dynamic rule
- - meta:
- plugin_name: freebsd.plugin
- module_name: getifaddrs
- monitored_instance:
- name: freebsd getifaddrs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: interface_speed
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: network interface ${label:device} current speed
- os: "*"
- - name: 1m_received_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average inbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: 1m_sent_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average outbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: 1m_received_packets_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: average number of packets received by the network interface ${label:device} over the last minute
- os: "linux freebsd"
- - name: 10s_received_packets_storm
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute
- os: "linux freebsd"
- - name: interface_inbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of inbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: interface_outbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of outbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: inbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.net
- description: Network Traffic
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: system.packets
- description: Network Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast_received
- - name: multicast_sent
- - name: system.ipv4
- description: IPv4 Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: system.ipv6
- description: IPv6 Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: network device
- description: ""
- labels: []
- metrics:
- - name: net.net
- description: Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: net.packets
- description: Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast_received
- - name: multicast_sent
- - name: net.errors
- description: Interface Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: net.drops
- description: Interface Drops
- unit: "drops/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: net.events
- description: Network Interface Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: collisions
- - meta:
- plugin_name: freebsd.plugin
- module_name: getmntinfo
- monitored_instance:
- name: freebsd getmntinfo
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: disk_space_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.space
- info: disk ${label:mount_point} space utilization
- os: "linux freebsd"
- - name: disk_inode_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.inodes
- info: disk ${label:mount_point} inode utilization
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: mount point
- description: ""
- labels: []
- metrics:
- - name: disk.space
- description: Disk Space Usage for {mounted dir} [{mounted filesystem}]
- unit: "GiB"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
- - name: disk.inodes
- description: Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]
- unit: "inodes"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
- - meta:
- plugin_name: freebsd.plugin
- module_name: zfs
- monitored_instance:
- name: freebsd zfs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: zfs_memory_throttle
- link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
- metric: zfs.memory_ops
- info: number of times ZFS had to limit the ARC growth in the last 10 minutes
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: zfs.arc_size
- description: ZFS ARC Size
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: arcsz
- - name: target
- - name: min
- - name: max
- - name: zfs.l2_size
- description: ZFS L2 ARC Size
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: actual
- - name: size
- - name: zfs.reads
- description: ZFS Reads
- unit: "reads/s"
- chart_type: area
- dimensions:
- - name: arc
- - name: demand
- - name: prefetch
- - name: metadata
- - name: l2
- - name: zfs.bytes
- description: ZFS ARC L2 Read/Write Rate
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: zfs.hits
- description: ZFS ARC Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.hits_rate
- description: ZFS ARC Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.dhits
- description: ZFS Demand Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.dhits_rate
- description: ZFS Demand Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.phits
- description: ZFS Prefetch Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.phits_rate
- description: ZFS Prefetch Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.mhits
- description: ZFS Metadata Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.mhits_rate
- description: ZFS Metadata Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.l2hits
- description: ZFS L2 Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.l2hits_rate
- description: ZFS L2 Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.list_hits
- description: ZFS List Hits
- unit: "hits/s"
- chart_type: area
- dimensions:
- - name: mfu
- - name: mfu_ghost
- - name: mru
- - name: mru_ghost
- - name: zfs.arc_size_breakdown
- description: ZFS ARC Size Breakdown
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: recent
- - name: frequent
- - name: zfs.memory_ops
- description: ZFS Memory Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: throttled
- - name: zfs.important_ops
- description: ZFS Important Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: evict_skip
- - name: deleted
- - name: mutex_miss
- - name: hash_collisions
- - name: zfs.actual_hits
- description: ZFS Actual Cache Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.actual_hits_rate
- description: ZFS Actual Cache Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.demand_data_hits
- description: ZFS Data Demand Efficiency
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.demand_data_hits_rate
- description: ZFS Data Demand Efficiency Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.prefetch_data_hits
- description: ZFS Data Prefetch Efficiency
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.prefetch_data_hits_rate
- description: ZFS Data Prefetch Efficiency Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.hash_elements
- description: ZFS ARC Hash Elements
- unit: "elements"
- chart_type: line
- dimensions:
- - name: current
- - name: max
- - name: zfs.hash_chains
- description: ZFS ARC Hash Chains
- unit: "chains"
- chart_type: line
- dimensions:
- - name: current
- - name: max
- - name: zfs.trim_bytes
- description: Successfully TRIMmed bytes
- unit: "bytes"
- chart_type: line
- dimensions:
- - name: TRIMmed
- - name: zfs.trim_requests
- description: TRIM requests
- unit: "requests"
- chart_type: line
- dimensions:
- - name: successful
- - name: failed
- - name: unsupported
diff --git a/collectors/freeipmi.plugin/freeipmi_plugin.c b/collectors/freeipmi.plugin/freeipmi_plugin.c
index bfd867cc9..94b4fed85 100644
--- a/collectors/freeipmi.plugin/freeipmi_plugin.c
+++ b/collectors/freeipmi.plugin/freeipmi_plugin.c
@@ -1799,8 +1799,10 @@ int main (int argc, char **argv) {
for(iteration = 0; 1 ; iteration++) {
usec_t dt = heartbeat_next(&hb, step);
- if(!tty)
+ if (!tty) {
fprintf(stdout, "\n"); // keepalive to avoid parser read timeout (2 minutes) during ipmi_detect_speed_secs()
+ fflush(stdout);
+ }
struct netdata_ipmi_state state = {0 };
@@ -1890,7 +1892,7 @@ int main (int argc, char **argv) {
// restart check (14400 seconds)
if (now_monotonic_sec() - started_t > IPMI_RESTART_EVERY_SECONDS) {
- collector_error("%s(): reached my lifetime expectancy. Exiting to restart.", __FUNCTION__);
+ collector_info("%s(): reached my lifetime expectancy. Exiting to restart.", __FUNCTION__);
fprintf(stdout, "EXIT\n");
fflush(stdout);
exit(0);
diff --git a/collectors/freeipmi.plugin/metadata.yaml b/collectors/freeipmi.plugin/metadata.yaml
new file mode 100644
index 000000000..9540410bf
--- /dev/null
+++ b/collectors/freeipmi.plugin/metadata.yaml
@@ -0,0 +1,151 @@
+plugin_name: freeipmi.plugin
+modules:
+ - meta:
+ plugin_name: freeipmi.plugin
+ module_name: sensors
+ monitored_instance:
+ name: Intelligent Platform Management Interface (IPMI)
+ link: "https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "netdata.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - sensors
+ - ipmi
+ - freeipmi
+ - ipmimonitoring
+ most_popular: true
+ overview:
+ data_collection:
+ metrics_description: |
+ "Monitor enterprise server sensor readings, event log entries, and hardware statuses to ensure reliable server operations."
+ method_description: |
+ The plugin uses open source library IPMImonitoring to communicate with sensors.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid."
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: "Linux kernel module for IPMI can create big overhead."
+ setup:
+ prerequisites:
+ list:
+ - title: Preliminary actions
+ description: |
+ If you have not previously used IPMI on your system, you will probably need to run the ipmimonitoring command as root to initialize IPMI settings so that the Netdata plugin works correctly. It should return information about available sensors on the system.
+
+ In some distributions libipmimonitoring.pc is located in a non-standard directory, which can cause building the plugin to fail when building Netdata from source. In that case you should find the file and link it to the standard pkg-config directory. Usually, running sudo ln -s /usr/lib/$(uname -m)-linux-gnu/pkgconfig/libipmimonitoring.pc/libipmimonitoring.pc /usr/lib/pkgconfig/libipmimonitoring.pc resolves this issue.
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: '[plugin:freeipmi]'
+ description: "This is netdata main configuration file"
+ options:
+ description: "This tool receives command line options that are visible when user run: `./usr/libexec/netdata/plugins.d/freeipmi.plugin --help`"
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: command options
+ description: Variable used to pass arguments for the plugin.
+ default_value: 1
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ipmi_sensor_state
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipmi.conf
+ metric: ipmi.sensor_state
+ info: IPMI sensor ${label:sensor} (${label:component}) state
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: sensor
+ description: ""
+ labels:
+ - name: sensor
+ description: The sensor name
+ - name: type
+ description: One of 45 recognized sensor types (Battery, Voltage...)
+ - name: component
+ description: One of 25 recognized components (Processor, Peripheral).
+ metrics:
+ - name: ipmi.sel
+ description: IPMI Events
+ unit: "events"
+ chart_type: area
+ dimensions:
+ - name: events
+ - name: ipmi.sensor_state
+ description: IPMI Sensors State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: nominal
+ - name: critical
+ - name: warning
+ - name: unknown
+ - name: ipmi.sensor_temperature_c
+ description: IPMI Sensor Temperature Celsius
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: temperature
+ - name: ipmi.sensor_temperature_f
+ description: IPMI Sensor Temperature Fahrenheit
+ unit: "Fahrenheit"
+ chart_type: line
+ dimensions:
+ - name: temperature
+ - name: ipmi.sensor_voltage
+ description: IPMI Sensor Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: voltage
+ - name: ipmi.sensor_ampere
+ description: IPMI Sensor Current
+ unit: "Amps"
+ chart_type: line
+ dimensions:
+ - name: ampere
+ - name: ipmi.sensor_fan_speed
+ description: IPMI Sensor Fans Speed
+ unit: "RPM"
+ chart_type: line
+ dimensions:
+ - name: rotations
+ - name: ipmi.sensor_power
+ description: IPMI Sensor Power
+ unit: "Watts"
+ chart_type: line
+ dimensions:
+ - name: power
+ - name: ipmi.sensor_reading_percent
+ description: IPMI Sensor Reading Percentage
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: percentage
diff --git a/collectors/freeipmi.plugin/metrics.csv b/collectors/freeipmi.plugin/metrics.csv
deleted file mode 100644
index 4c90d5c1b..000000000
--- a/collectors/freeipmi.plugin/metrics.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-ipmi.sel,,events,events,"IPMI Events",area,,freeipmi.plugin,sel
-ipmi.sensor_state,sensor,"nominal, critical, warning, unknown",state,"IPMI Sensors State",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_temperature_c,sensor,temperature,Celsius,"IPMI Sensor Temperature Celsius",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_temperature_f,sensor,temperature,Fahrenheit,"IPMI Sensor Temperature Fahrenheit",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_voltage,sensor,voltage,Volts,"IPMI Sensor Voltage",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_ampere,sensor,ampere,Amps,"IPMI Sensor Current",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_fan_speed,sensor,rotations,RPM,"IPMI Sensor Fans Speed",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_power,sensor,power,Watts,"IPMI Sensor Power",line,"sensor, type, component",freeipmi.plugin,sensors
-ipmi.sensor_reading_percent,sensor,percentage,%,"IPMI Sensor Reading Percentage",line,"sensor, type, component",freeipmi.plugin,sensors
diff --git a/collectors/freeipmi.plugin/multi_metadata.yaml b/collectors/freeipmi.plugin/multi_metadata.yaml
deleted file mode 100644
index 21333278a..000000000
--- a/collectors/freeipmi.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,199 +0,0 @@
-name: freeipmi.plugin
-modules:
- - meta:
- plugin_name: freeipmi.plugin
- module_name: sel
- monitored_instance:
- name: freeipmi sel
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipmi.sel
- description: IPMI Events
- unit: "events"
- chart_type: area
- dimensions:
- - name: events
- - meta:
- plugin_name: freeipmi.plugin
- module_name: sensors
- monitored_instance:
- name: freeipmi sensors
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: ipmi_sensor_state
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipmi.conf
- metric: ipmi.sensor_state
- info: IPMI sensor ${label:sensor} (${label:component}) state
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: sensor
- description: ""
- labels:
- - name: sensor
- description: TBD
- - name: type
- description: TBD
- - name: component
- description: TBD
- metrics:
- - name: ipmi.sensor_state
- description: IPMI Sensors State
- unit: "state"
- chart_type: line
- dimensions:
- - name: nominal
- - name: critical
- - name: warning
- - name: unknown
- - name: ipmi.sensor_temperature_c
- description: IPMI Sensor Temperature Celsius
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: temperature
- - name: ipmi.sensor_temperature_f
- description: IPMI Sensor Temperature Fahrenheit
- unit: "Fahrenheit"
- chart_type: line
- dimensions:
- - name: temperature
- - name: ipmi.sensor_voltage
- description: IPMI Sensor Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: voltage
- - name: ipmi.sensor_ampere
- description: IPMI Sensor Current
- unit: "Amps"
- chart_type: line
- dimensions:
- - name: ampere
- - name: ipmi.sensor_fan_speed
- description: IPMI Sensor Fans Speed
- unit: "RPM"
- chart_type: line
- dimensions:
- - name: rotations
- - name: ipmi.sensor_power
- description: IPMI Sensor Power
- unit: "Watts"
- chart_type: line
- dimensions:
- - name: power
- - name: ipmi.sensor_reading_percent
- description: IPMI Sensor Reading Percentage
- unit: "%"
- chart_type: line
- dimensions:
- - name: percentage
diff --git a/collectors/idlejitter.plugin/metadata.yaml b/collectors/idlejitter.plugin/metadata.yaml
index cd1737d3e..0ad946994 100644
--- a/collectors/idlejitter.plugin/metadata.yaml
+++ b/collectors/idlejitter.plugin/metadata.yaml
@@ -1,74 +1,90 @@
-meta:
- plugin_name: idlejitter.plugin
- module_name: idlejitter.plugin
- monitored_instance:
- name: IdleJitter
- link: ''
- categories:
- - data-collection.synthetic-checks
- icon_filename: 'syslog.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor IdleJitter performance for optimal system idle process operations. Monitor CPU idle times, wake-ups, and power states to optimize system resource usage.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: idlejitter.plugin
+modules:
+ - meta:
+ plugin_name: idlejitter.plugin
+ module_name: idlejitter.plugin
+ monitored_instance:
+ name: Idle OS Jitter
+ link: ''
+ categories:
+ - data-collection.synthetic-checks
+ icon_filename: 'syslog.png'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - latency
+ - jitter
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: >
+ Monitor delays in timing for user processes caused by scheduling limitations to optimize the system to run
+ latency sensitive applications with minimal jitter, improving consistency and quality of service.
+ method_description: >
+ A thread is spawned that requests to sleep for fixed amount of time. When the system wakes it up, it
+ measures how many microseconds have passed. The difference between the requested and the actual duration of
+ the sleep, is the idle jitter. This is done dozens of times per second to ensure we have a representative sample.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'This integration will run by default on all supported systems.'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: 'netdata.conf'
+ section: 'plugin:idlejitter'
+ description: ''
+ options:
+ description: >
+ This integration only supports a single configuration option, and most users will not need to change it.
+ folding:
+ title: ''
+ enabled: false
+ list:
+ - name: loop time in ms
+ description: >
+ Specifies the target time for the data collection thread to sleep, measured in miliseconds.
+ default_value: 20
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: system.idlejitter
- description: CPU Idle Jitter
- unit: "microseconds lost/s"
- chart_type: line
- dimensions:
- - name: min
- - name: max
- - name: average
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.idlejitter
+ description: CPU Idle Jitter
+ unit: "microseconds lost/s"
+ chart_type: line
+ dimensions:
+ - name: min
+ - name: max
+ - name: average
diff --git a/collectors/idlejitter.plugin/metrics.csv b/collectors/idlejitter.plugin/metrics.csv
deleted file mode 100644
index 05cc12337..000000000
--- a/collectors/idlejitter.plugin/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.idlejitter,,"min, max, average","microseconds lost/s","CPU Idle Jitter",line,,idlejitter.plugin,
\ No newline at end of file
diff --git a/collectors/ioping.plugin/metadata.yaml b/collectors/ioping.plugin/metadata.yaml
index 52264f178..e3ec96162 100644
--- a/collectors/ioping.plugin/metadata.yaml
+++ b/collectors/ioping.plugin/metadata.yaml
@@ -1,76 +1,101 @@
-meta:
- plugin_name: ioping.plugin
- module_name: ioping.plugin
- monitored_instance:
- name: IOPing
- link: ''
- categories:
- - data-collection.synthetic-checks
- icon_filename: 'syslog.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: ioping_disk_latency
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ioping.conf
- metric: ioping.latency
- info: average I/O latency over the last 10 seconds
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: disk
- description: ""
- labels: []
+plugin_name: ioping.plugin
+modules:
+ - meta:
+ plugin_name: ioping.plugin
+ module_name: ioping.plugin
+ monitored_instance:
+ name: IOPing
+ link: "https://github.com/koct9i/ioping"
+ categories:
+ - data-collection.synthetic-checks
+ icon_filename: "syslog.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations."
+ method_description: "Plugin uses `ioping` command."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Install ioping
+ description: |
+ You can install the command by passing the argument `install` to the plugin (`/usr/libexec/netdata/plugins.d/ioping.plugin install`).
+ configuration:
+ file:
+ name: "ioping.conf"
+ description: "File with options to specify hardware to monitor and arguments for ioping command."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Data collection frequency.
+ default_value: 1s
+ required: false
+ - name: destination
+ description: The directory/file/device to ioping.
+ default_value: ""
+ required: true
+ - name: request_size
+ description: The request size in bytes to ioping the destination (symbolic modifiers are supported)
+ default_value: 4k
+ required: false
+ - name: ioping_opts
+ description: Options passed to `ioping` commands.
+ default_value: -T 1000000
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic Configuration
+ description: This example has the minimum configuration necessary to have the plugin running.
+ config: |
+ destination="/dev/sda"
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ioping_disk_latency
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ioping.conf
+ metric: ioping.latency
+ info: average I/O latency over the last 10 seconds
metrics:
- - name: ioping.latency
- description: Read Latency
- unit: "microseconds"
- chart_type: line
- dimensions:
- - name: latency
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: disk
+ description: ""
+ labels: []
+ metrics:
+ - name: ioping.latency
+ description: Read Latency
+ unit: "microseconds"
+ chart_type: line
+ dimensions:
+ - name: latency
diff --git a/collectors/ioping.plugin/metrics.csv b/collectors/ioping.plugin/metrics.csv
deleted file mode 100644
index 040ea8561..000000000
--- a/collectors/ioping.plugin/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-ioping.latency,disk,latency,microseconds,"Read Latency",line,,ioping.plugin,
\ No newline at end of file
diff --git a/collectors/macos.plugin/macos_mach_smi.c b/collectors/macos.plugin/macos_mach_smi.c
index f21a56af2..30c957187 100644
--- a/collectors/macos.plugin/macos_mach_smi.c
+++ b/collectors/macos.plugin/macos_mach_smi.c
@@ -99,7 +99,7 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
do_ram = 0;
collector_error("DISABLED: system.ram");
do_swapio = 0;
- collector_error("DISABLED: system.swapio");
+ collector_error("DISABLED: mem.swapio");
do_pgfaults = 0;
collector_error("DISABLED: mem.pgfaults");
} else {
@@ -148,10 +148,10 @@ int do_macos_mach_smi(int update_every, usec_t dt) {
#if (defined __MAC_OS_X_VERSION_MIN_REQUIRED && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090)
if (likely(do_swapio)) {
- st = rrdset_find_active_localhost("system.swapio");
+ st = rrdset_find_active_localhost("mem.swapio");
if (unlikely(!st)) {
st = rrdset_create_localhost(
- "system"
+ "mem"
, "swapio"
, NULL
, "swap"
diff --git a/collectors/macos.plugin/macos_sysctl.c b/collectors/macos.plugin/macos_sysctl.c
index 42f01d85a..520d2f938 100644
--- a/collectors/macos.plugin/macos_sysctl.c
+++ b/collectors/macos.plugin/macos_sysctl.c
@@ -260,12 +260,12 @@ int do_macos_sysctl(int update_every, usec_t dt) {
if (likely(do_swap)) {
if (unlikely(GETSYSCTL_BY_NAME("vm.swapusage", swap_usage))) {
do_swap = 0;
- collector_error("DISABLED: system.swap");
+ collector_error("DISABLED: mem.swap");
} else {
- st = rrdset_find_active_localhost("system.swap");
+ st = rrdset_find_active_localhost("mem.swap");
if (unlikely(!st)) {
st = rrdset_create_localhost(
- "system"
+ "mem"
, "swap"
, NULL
, "swap"
diff --git a/collectors/macos.plugin/metadata.yaml b/collectors/macos.plugin/metadata.yaml
new file mode 100644
index 000000000..cc159ad1f
--- /dev/null
+++ b/collectors/macos.plugin/metadata.yaml
@@ -0,0 +1,727 @@
+plugin_name: macos.plugin
+modules:
+ - meta:
+ plugin_name: macos.plugin
+ module_name: mach_smi
+ monitored_instance:
+ name: macOS
+ link: "https://www.apple.com/macos"
+ categories:
+ - data-collection.macos-systems
+ icon_filename: "macos.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - macos
+ - apple
+ - darwin
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor macOS metrics for efficient operating system performance."
+ method_description: |
+ The plugin uses three different methods to collect data:
+ - The function `sysctlbyname` is called to collect network, swap, loadavg, and boot time.
+ - The functtion `host_statistic` is called to collect CPU and Virtual memory data;
+ - The function `IOServiceGetMatchingServices` to collect storage information.
+ supported_platforms:
+ include:
+ - macOS
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ description: "The netdata main configuration file."
+ options:
+ description: |
+ There are three sections in the file which you can configure:
+
+ - `[plugin:macos:sysctl]` - Enable or disable monitoring for network, swap, loadavg, and boot time.
+ - `[plugin:macos:mach_smi]` - Enable or disable monitoring for CPU and Virtual memory.
+ - `[plugin:macos:iokit]` - Enable or disable monitoring for storage device.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: enable load average
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of load average metrics (load1, load5, load15).
+ default_value: yes
+ required: false
+ - name: system swap
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of system swap metrics (free, used).
+ default_value: yes
+ required: false
+ - name: bandwidth
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of network bandwidth metrics (received, sent).
+ default_value: yes
+ required: false
+ - name: ipv4 TCP packets
+ description: Enable or disable monitoring of IPv4 TCP total packets metrics (received, sent).
+ section_name: plugin:macos:sysctl
+ default_value: yes
+ required: false
+ - name: ipv4 TCP errors
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 TCP packets metrics (Input Errors, Checksum, Retransmission segments).
+ default_value: yes
+ required: false
+ - name: ipv4 TCP handshake issues
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 TCP handshake metrics (Established Resets, Active Opens, Passive Opens, Attempt Fails).
+ default_value: yes
+ required: false
+ - name: ECN packets
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ECN statistics metrics (InCEPkts, InNoECTPkts).
+ default_value: auto
+ required: false
+ - name: TCP SYN cookies
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of TCP SYN cookies metrics (received, sent, failed).
+ default_value: auto
+ required: false
+ - name: TCP out-of-order queue
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of TCP out-of-order queue metrics (inqueue).
+ default_value: auto
+ required: false
+ - name: TCP connection aborts
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of TCP connection aborts metrics (Bad Data, User closed, No memory, Timeout).
+ default_value: auto
+ required: false
+ - name: ipv4 UDP packets
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ipv4 UDP packets metrics (sent, received.).
+ default_value: yes
+ required: false
+ - name: ipv4 UDP errors
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ipv4 UDP errors metrics (Recieved Buffer error, Input Errors, No Ports, IN Checksum Errors, Ignore Multi).
+ default_value: yes
+ required: false
+ - name: ipv4 icmp packets
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 ICMP packets metrics (sent, received, in error, OUT error, IN Checksum error).
+ default_value: yes
+ required: false
+ - name: ipv4 icmp messages
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ipv4 ICMP messages metrics (I/O messages, I/O Errors, In Checksum).
+ default_value: yes
+ required: false
+ - name: ipv4 packets
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ipv4 packets metrics (received, sent, forwarded, delivered).
+ default_value: yes
+ required: false
+ - name: ipv4 fragments sent
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 fragments sent metrics (ok, fails, creates).
+ default_value: yes
+ required: false
+ - name: ipv4 fragments assembly
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 fragments assembly metrics (ok, failed, all).
+ default_value: yes
+ required: false
+ - name: ipv4 errors
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv4 errors metrics (I/O discard, I/O HDR errors, In Addr errors, In Unknown protos, OUT No Routes).
+ default_value: yes
+ required: false
+ - name: ipv6 packets
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv6 packets metrics (received, sent, forwarded, delivered).
+ default_value: auto
+ required: false
+ - name: ipv6 fragments sent
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv6 fragments sent metrics (ok, failed, all).
+ default_value: auto
+ required: false
+ - name: ipv6 fragments assembly
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv6 fragments assembly metrics (ok, failed, timeout, all).
+ default_value: auto
+ required: false
+ - name: ipv6 errors
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of IPv6 errors metrics (I/O Discards, In Hdr Errors, In Addr Errors, In Truncaedd Packets, I/O No Routes).
+ default_value: auto
+ required: false
+ - name: icmp
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP metrics (sent, received).
+ default_value: auto
+ required: false
+ - name: icmp redirects
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP redirects metrics (received, sent).
+ default_value: auto
+ required: false
+ - name: icmp errors
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP metrics (I/O Errors, In Checksums, In Destination Unreachable, In Packet too big, In Time Exceeds, In Parm Problem, Out Dest Unreachable, Out Timee Exceeds, Out Parm Problems.).
+ default_value: auto
+ required: false
+ - name: icmp echos
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP echos metrics (I/O Echos, I/O Echo Reply).
+ default_value: auto
+ required: false
+ - name: icmp router
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP router metrics (I/O Solicits, I/O Advertisements).
+ default_value: auto
+ required: false
+ - name: icmp neighbor
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP neighbor metrics (I/O Solicits, I/O Advertisements).
+ default_value: auto
+ required: false
+ - name: icmp types
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of ICMP types metrics (I/O Type1, I/O Type128, I/O Type129, Out Type133, Out Type135, In Type136, Out Type145).
+ default_value: auto
+ required: false
+ - name: space usage for all disks
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of space usage for all disks metrics (available, used, reserved for root).
+ default_value: yes
+ required: false
+ - name: inodes usage for all disks
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of inodes usage for all disks metrics (available, used, reserved for root).
+ default_value: yes
+ required: false
+ - name: bandwidth
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of bandwidth metrics (received, sent).
+ default_value: yes
+ required: false
+ - name: system uptime
+ section_name: plugin:macos:sysctl
+ description: Enable or disable monitoring of system uptime metrics (uptime).
+ default_value: yes
+ required: false
+ - name: cpu utilization
+ section_name: plugin:macos:mach_smi
+ description: Enable or disable monitoring of CPU utilization metrics (user, nice, system, idel).
+ default_value: yes
+ required: false
+ - name: system ram
+ section_name: plugin:macos:mach_smi
+ description: Enable or disable monitoring of system RAM metrics (Active, Wired, throttled, compressor, inactive, purgeable, speculative, free).
+ default_value: yes
+ required: false
+ - name: swap i/o
+ section_name: plugin:macos:mach_smi
+ description: Enable or disable monitoring of SWAP I/O metrics (I/O Swap).
+ default_value: yes
+ required: false
+ - name: memory page faults
+ section_name: plugin:macos:mach_smi
+ description: Enable or disable monitoring of memory page faults metrics (memory, cow, I/O page, compress, decompress, zero fill, reactivate, purge).
+ default_value: yes
+ required: false
+ - name: disk i/o
+ section_name: plugin:macos:iokit
+ description: Enable or disable monitoring of disk I/O metrics (In, Out).
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Disable swap monitoring.
+ folding:
+ enabled: true
+ description: A basic example that discards swap monitoring
+ config: |
+ [plugin:macos:sysctl]
+ system swap = no
+ [plugin:macos:mach_smi]
+ swap i/o = no
+ - name: Disable complete Machine SMI section.
+ folding:
+ enabled: true
+ description: A basic example that discards swap monitoring
+ config: |
+ [plugin:macos:mach_smi]
+ cpu utilization = no
+ system ram = no
+ swap i/o = no
+ memory page faults = no
+ disk i/o = no
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: interface_speed
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: network interface ${label:device} current speed
+ os: "*"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to hardware and network monitoring.
+ labels: []
+ metrics:
+ - name: system.cpu
+ description: Total CPU utilization
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: user
+ - name: nice
+ - name: system
+ - name: idle
+ - name: system.ram
+ description: System RAM
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: active
+ - name: wired
+ - name: throttled
+ - name: compressor
+ - name: inactive
+ - name: purgeable
+ - name: speculative
+ - name: free
+ - name: mem.swapio
+ description: Swap I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: io
+ - name: out
+ - name: mem.pgfaults
+ description: Memory Page Faults
+ unit: "faults/s"
+ chart_type: line
+ dimensions:
+ - name: memory
+ - name: cow
+ - name: pagein
+ - name: pageout
+ - name: compress
+ - name: decompress
+ - name: zero_fill
+ - name: reactivate
+ - name: purge
+ - name: system.load
+ description: System Load Average
+ unit: "load"
+ chart_type: line
+ dimensions:
+ - name: load1
+ - name: load5
+ - name: load15
+ - name: mem.swap
+ description: System Swap
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: system.ipv4
+ description: IPv4 Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.tcppackets
+ description: IPv4 TCP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.tcperrors
+ description: IPv4 TCP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrs
+ - name: InCsumErrors
+ - name: RetransSegs
+ - name: ipv4.tcphandshake
+ description: IPv4 TCP Handshake Issues
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: EstabResets
+ - name: ActiveOpens
+ - name: PassiveOpens
+ - name: AttemptFails
+ - name: ipv4.tcpconnaborts
+ description: TCP Connection Aborts
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: baddata
+ - name: userclosed
+ - name: nomemory
+ - name: timeout
+ - name: ipv4.tcpofo
+ description: TCP Out-Of-Order Queue
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: inqueue
+ - name: ipv4.tcpsyncookies
+ description: TCP SYN Cookies
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: failed
+ - name: ipv4.ecnpkts
+ description: IPv4 ECN Statistics
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: CEP
+ - name: NoECTP
+ - name: ipv4.udppackets
+ description: IPv4 UDP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.udperrors
+ description: IPv4 UDP Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: RcvbufErrors
+ - name: InErrors
+ - name: NoPorts
+ - name: InCsumErrors
+ - name: IgnoredMulti
+ - name: ipv4.icmp
+ description: IPv4 ICMP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.icmp_errors
+ description: IPv4 ICMP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: ipv4.icmpmsg
+ description: IPv4 ICMP Messages
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InEchoReps
+ - name: OutEchoReps
+ - name: InEchos
+ - name: OutEchos
+ - name: ipv4.packets
+ description: IPv4 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivered
+ - name: ipv4.fragsout
+ description: IPv4 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: created
+ - name: ipv4.fragsin
+ description: IPv4 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv4.errors
+ description: IPv4 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: OutNoRoutes
+ - name: InAddrErrors
+ - name: InUnknownProtos
+ - name: ipv6.packets
+ description: IPv6 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivers
+ - name: ipv6.fragsout
+ description: IPv6 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv6.fragsin
+ description: IPv6 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: timeout
+ - name: all
+ - name: ipv6.errors
+ description: IPv6 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: InAddrErrors
+ - name: InTruncatedPkts
+ - name: InNoRoutes
+ - name: OutNoRoutes
+ - name: ipv6.icmp
+ description: IPv6 ICMP Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmpredir
+ description: IPv6 ICMP Redirects
+ unit: "redirects/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmperrors
+ description: IPv6 ICMP Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: InDestUnreachs
+ - name: InPktTooBigs
+ - name: InTimeExcds
+ - name: InParmProblems
+ - name: OutDestUnreachs
+ - name: OutTimeExcds
+ - name: OutParmProblems
+ - name: ipv6.icmpechos
+ description: IPv6 ICMP Echo
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InEchos
+ - name: OutEchos
+ - name: InEchoReplies
+ - name: OutEchoReplies
+ - name: ipv6.icmprouter
+ description: IPv6 Router Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmpneighbor
+ description: IPv6 Neighbor Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmptypes
+ description: IPv6 ICMP Types
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InType1
+ - name: InType128
+ - name: InType129
+ - name: InType136
+ - name: OutType1
+ - name: OutType128
+ - name: OutType129
+ - name: OutType133
+ - name: OutType135
+ - name: OutType143
+ - name: system.uptime
+ description: System Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - name: system.io
+ description: Disk I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: disk
+ description: ""
+ labels: []
+ metrics:
+ - name: disk.io
+ description: Disk I/O Bandwidth
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: writes
+ - name: disk.ops
+ description: Disk Completed I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: writes
+ - name: disk.util
+ description: Disk Utilization Time
+ unit: "% of time working"
+ chart_type: area
+ dimensions:
+ - name: utilization
+ - name: disk.iotime
+ description: Disk Total I/O Time
+ unit: "milliseconds/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk.await
+ description: Average Completed I/O Operation Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk.avgsz
+ description: Average Completed I/O Operation Bandwidth
+ unit: "KiB/operation"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk.svctm
+ description: Average Service Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: svctm
+ - name: mount point
+ description: ""
+ labels: []
+ metrics:
+ - name: disk.space
+ description: Disk Space Usage for {mounted dir} [{mounted filesystem}]
+ unit: "GiB"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
+ - name: disk.inodes
+ description: Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]
+ unit: "inodes"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: reserved_for_root
+ - name: network device
+ description: ""
+ labels: []
+ metrics:
+ - name: net.net
+ description: Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: net.packets
+ description: Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast_received
+ - name: multicast_sent
+ - name: net.errors
+ description: Interface Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: net.drops
+ description: Interface Drops
+ unit: "drops/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: net.events
+ description: Network Interface Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: frames
+ - name: collisions
+ - name: carrier
diff --git a/collectors/macos.plugin/metrics.csv b/collectors/macos.plugin/metrics.csv
deleted file mode 100644
index 4fee17065..000000000
--- a/collectors/macos.plugin/metrics.csv
+++ /dev/null
@@ -1,51 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.cpu,,"user, nice, system, idle",percentage,"Total CPU utilization",stacked,,macos.plugin,mach_smi
-system.ram,,"active, wired, throttled, compressor, inactive, purgeable, speculative, free",MiB,"System RAM",stacked,,macos.plugin,mach_smi
-system.swapio,,"io, out",KiB/s,"Swap I/O",area,,macos.plugin,mach_smi
-mem.pgfaults,,"memory, cow, pagein, pageout, compress, decompress, zero_fill, reactivate, purge",faults/s,"Memory Page Faults",line,,macos.plugin,mach_smi
-system.load,,"load1, load5, load15",load,"System Load Average",line,,macos.plugin,sysctl
-system.swap,,"free, used",MiB,"System Swap",stacked,,macos.plugin,sysctl
-system.ipv4,,"received, sent",kilobits/s,"IPv4 Bandwidth",area,,macos.plugin,sysctl
-ipv4.tcppackets,,"received, sent",packets/s,"IPv4 TCP Packets",line,,macos.plugin,sysctl
-ipv4.tcperrors,,"InErrs, InCsumErrors, RetransSegs",packets/s,"IPv4 TCP Errors",line,,macos.plugin,sysctl
-ipv4.tcphandshake,,"EstabResets, ActiveOpens, PassiveOpens, AttemptFails",events/s,"IPv4 TCP Handshake Issues",line,,macos.plugin,sysctl
-ipv4.tcpconnaborts,,"baddata, userclosed, nomemory, timeout",connections/s,"TCP Connection Aborts",line,,macos.plugin,sysctl
-ipv4.tcpofo,,inqueue,packets/s,"TCP Out-Of-Order Queue",line,,macos.plugin,sysctl
-ipv4.tcpsyncookies,,"received, sent, failed",packets/s,"TCP SYN Cookies",line,,macos.plugin,sysctl
-ipv4.ecnpkts,,"CEP, NoECTP",packets/s,"IPv4 ECN Statistics",line,,macos.plugin,sysctl
-ipv4.udppackets,,"received, sent",packets/s,"IPv4 UDP Packets",line,,macos.plugin,sysctl
-ipv4.udperrors,,"RcvbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti",events/s,"IPv4 UDP Errors",line,,macos.plugin,sysctl
-ipv4.icmp,,"received, sent",packets/s,"IPv4 ICMP Packets",line,,macos.plugin,sysctl
-ipv4.icmp_errors,,"InErrors, OutErrors, InCsumErrors",packets/s,"IPv4 ICMP Errors",line,,macos.plugin,sysctl
-ipv4.icmpmsg,,"InEchoReps, OutEchoReps, InEchos, OutEchos",packets/s,"IPv4 ICMP Messages",line,,macos.plugin,sysctl
-ipv4.packets,,"received, sent, forwarded, delivered",packets/s,"IPv4 Packets",line,,macos.plugin,sysctl
-ipv4.fragsout,,"ok, failed, created",packets/s,"IPv4 Fragments Sent",line,,macos.plugin,sysctl
-ipv4.fragsin,,"ok, failed, all",packets/s,"IPv4 Fragments Reassembly",line,,macos.plugin,sysctl
-ipv4.errors,,"InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos",packets/s,"IPv4 Errors",line,,macos.plugin,sysctl
-ipv6.packets,,"received, sent, forwarded, delivers",packets/s,"IPv6 Packets",line,,macos.plugin,sysctl
-ipv6.fragsout,,"ok, failed, all",packets/s,"IPv6 Fragments Sent",line,,macos.plugin,sysctl
-ipv6.fragsin,,"ok, failed, timeout, all",packets/s,"IPv6 Fragments Reassembly",line,,macos.plugin,sysctl
-ipv6.errors,,"InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes",packets/s,"IPv6 Errors",line,,macos.plugin,sysctl
-ipv6.icmp,,"received, sent",messages/s,"IPv6 ICMP Messages",line,,macos.plugin,sysctl
-ipv6.icmpredir,,"received, sent",redirects/s,"IPv6 ICMP Redirects",line,,macos.plugin,sysctl
-ipv6.icmperrors,,"InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems",errors/s,"IPv6 ICMP Errors",line,,macos.plugin,sysctl
-ipv6.icmpechos,,"InEchos, OutEchos, InEchoReplies, OutEchoReplies",messages/s,"IPv6 ICMP Echo",line,,macos.plugin,sysctl
-ipv6.icmprouter,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,"IPv6 Router Messages",line,,macos.plugin,sysctl
-ipv6.icmpneighbor,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,"IPv6 Neighbor Messages",line,,macos.plugin,sysctl
-ipv6.icmptypes,,"InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143",messages/s,"IPv6 ICMP Types",line,,macos.plugin,sysctl
-system.uptime,,uptime,seconds,"System Uptime",line,,macos.plugin,sysctl
-disk.io,disk,"read, writes",KiB/s,"Disk I/O Bandwidth",area,,macos.plugin,iokit
-disk.ops,disk,"read, writes",operations/s,"Disk Completed I/O Operations",line,,macos.plugin,iokit
-disk.util,disk,utilization,% of time working,"Disk Utilization Time",area,,macos.plugin,iokit
-disk.iotime,disk,"reads, writes",milliseconds/s,"Disk Total I/O Time",line,,macos.plugin,iokit
-disk.await,disk,"reads, writes",milliseconds/operation,"Average Completed I/O Operation Time",line,,macos.plugin,iokit
-disk.avgsz,disk,"reads, writes",KiB/operation,"Average Completed I/O Operation Bandwidth",line,,macos.plugin,iokit
-disk.svctm,disk,svctm,milliseconds/operation,"Average Service Time",line,,macos.plugin,iokit
-system.io,,"in, out",KiB/s,"Disk I/O",area,,macos.plugin,iokit
-disk.space,mount point,"avail, used, reserved_for_root",GiB,"Disk Space Usage for {mounted dir} [{mounted filesystem}]",stacked,,macos.plugin,iokit
-disk.inodes,mount point,"avail, used, reserved_for_root",inodes,"Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]",stacked,,macos.plugin,iokit
-net.net,network device,"received, sent",kilobits/s,"Bandwidth",area,,macos.plugin,iokit
-net.packets,network device,"received, sent, multicast_received, multicast_sent",packets/s,"Packets",line,,macos.plugin,iokit
-net.errors,network device,"inbound, outbound",errors/s,"Interface Errors",line,,macos.plugin,iokit
-net.drops,network device,inbound,drops/s,"Interface Drops",line,,macos.plugin,iokit
-net.events,network device,"frames, collisions, carrier",events/s,"Network Interface Events",line,,macos.plugin,iokit
diff --git a/collectors/macos.plugin/multi_metadata.yaml b/collectors/macos.plugin/multi_metadata.yaml
deleted file mode 100644
index 38668fdcc..000000000
--- a/collectors/macos.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,797 +0,0 @@
-name: macos.plugin
-modules:
- - meta:
- plugin_name: macos.plugin
- module_name: mach_smi
- monitored_instance:
- name: macos mach_smi
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
- os: "linux"
- - name: 10min_cpu_iowait
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU iowait time over the last 10 minutes
- os: "linux"
- - name: 20min_steal_cpu
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU steal time over the last 20 minutes
- os: "linux"
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding nice)
- os: "freebsd"
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "linux"
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "freebsd"
- - name: 30min_ram_swapped_out
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swapio
- info: percentage of the system RAM swapped in the last 30 minutes
- os: "linux freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.cpu
- description: Total CPU utilization
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: user
- - name: nice
- - name: system
- - name: idle
- - name: system.ram
- description: System RAM
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: active
- - name: wired
- - name: throttled
- - name: compressor
- - name: inactive
- - name: purgeable
- - name: speculative
- - name: free
- - name: system.swapio
- description: Swap I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: io
- - name: out
- - name: mem.pgfaults
- description: Memory Page Faults
- unit: "faults/s"
- chart_type: line
- dimensions:
- - name: memory
- - name: cow
- - name: pagein
- - name: pageout
- - name: compress
- - name: decompress
- - name: zero_fill
- - name: reactivate
- - name: purge
- - meta:
- plugin_name: macos.plugin
- module_name: sysctl
- monitored_instance:
- name: macos sysctl
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: load_cpu_number
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: number of active CPU cores in the system
- os: "linux"
- - name: load_average_15
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system fifteen-minute load average
- os: "linux"
- - name: load_average_5
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system five-minute load average
- os: "linux"
- - name: load_average_1
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system one-minute load average
- os: "linux"
- - name: used_swap
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swap
- info: swap memory utilization
- os: "linux freebsd"
- - name: 1m_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last minute
- os: "linux"
- - name: 10s_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux"
- - name: 1m_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last minute
- os: "linux freebsd"
- - name: 10s_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux freebsd"
- - name: 1m_ipv4_udp_receive_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP receive buffer errors over the last minute
- os: "linux freebsd"
- - name: 1m_ipv4_udp_send_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP send buffer errors over the last minute
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.load
- description: System Load Average
- unit: "load"
- chart_type: line
- dimensions:
- - name: load1
- - name: load5
- - name: load15
- - name: system.swap
- description: System Swap
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: system.ipv4
- description: IPv4 Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.tcppackets
- description: IPv4 TCP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.tcperrors
- description: IPv4 TCP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrs
- - name: InCsumErrors
- - name: RetransSegs
- - name: ipv4.tcphandshake
- description: IPv4 TCP Handshake Issues
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: EstabResets
- - name: ActiveOpens
- - name: PassiveOpens
- - name: AttemptFails
- - name: ipv4.tcpconnaborts
- description: TCP Connection Aborts
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: baddata
- - name: userclosed
- - name: nomemory
- - name: timeout
- - name: ipv4.tcpofo
- description: TCP Out-Of-Order Queue
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: inqueue
- - name: ipv4.tcpsyncookies
- description: TCP SYN Cookies
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: failed
- - name: ipv4.ecnpkts
- description: IPv4 ECN Statistics
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: CEP
- - name: NoECTP
- - name: ipv4.udppackets
- description: IPv4 UDP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.udperrors
- description: IPv4 UDP Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: RcvbufErrors
- - name: InErrors
- - name: NoPorts
- - name: InCsumErrors
- - name: IgnoredMulti
- - name: ipv4.icmp
- description: IPv4 ICMP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.icmp_errors
- description: IPv4 ICMP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: ipv4.icmpmsg
- description: IPv4 ICMP Messages
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InEchoReps
- - name: OutEchoReps
- - name: InEchos
- - name: OutEchos
- - name: ipv4.packets
- description: IPv4 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivered
- - name: ipv4.fragsout
- description: IPv4 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: created
- - name: ipv4.fragsin
- description: IPv4 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv4.errors
- description: IPv4 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: OutNoRoutes
- - name: InAddrErrors
- - name: InUnknownProtos
- - name: ipv6.packets
- description: IPv6 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivers
- - name: ipv6.fragsout
- description: IPv6 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv6.fragsin
- description: IPv6 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: timeout
- - name: all
- - name: ipv6.errors
- description: IPv6 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: InAddrErrors
- - name: InTruncatedPkts
- - name: InNoRoutes
- - name: OutNoRoutes
- - name: ipv6.icmp
- description: IPv6 ICMP Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmpredir
- description: IPv6 ICMP Redirects
- unit: "redirects/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmperrors
- description: IPv6 ICMP Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: InDestUnreachs
- - name: InPktTooBigs
- - name: InTimeExcds
- - name: InParmProblems
- - name: OutDestUnreachs
- - name: OutTimeExcds
- - name: OutParmProblems
- - name: ipv6.icmpechos
- description: IPv6 ICMP Echo
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InEchos
- - name: OutEchos
- - name: InEchoReplies
- - name: OutEchoReplies
- - name: ipv6.icmprouter
- description: IPv6 Router Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmpneighbor
- description: IPv6 Neighbor Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmptypes
- description: IPv6 ICMP Types
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InType1
- - name: InType128
- - name: InType129
- - name: InType136
- - name: OutType1
- - name: OutType128
- - name: OutType129
- - name: OutType133
- - name: OutType135
- - name: OutType143
- - name: system.uptime
- description: System Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
- - meta:
- plugin_name: macos.plugin
- module_name: iokit
- monitored_instance:
- name: macos iokit
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_disk_utilization
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.util
- info: average percentage of time ${label:device} disk was busy over the last 10 minutes
- os: "linux freebsd"
- - name: disk_space_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.space
- info: disk ${label:mount_point} space utilization
- os: "linux freebsd"
- - name: disk_inode_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.inodes
- info: disk ${label:mount_point} inode utilization
- os: "linux freebsd"
- - name: interface_speed
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: network interface ${label:device} current speed
- os: "*"
- - name: 1m_received_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average inbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: 1m_sent_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average outbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: 1m_received_packets_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: average number of packets received by the network interface ${label:device} over the last minute
- os: "linux freebsd"
- - name: 10s_received_packets_storm
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute
- os: "linux freebsd"
- - name: interface_inbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of inbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: interface_outbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of outbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: inbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: disk
- description: ""
- labels: []
- metrics:
- - name: disk.io
- description: Disk I/O Bandwidth
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: writes
- - name: disk.ops
- description: Disk Completed I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: read
- - name: writes
- - name: disk.util
- description: Disk Utilization Time
- unit: "% of time working"
- chart_type: area
- dimensions:
- - name: utilization
- - name: disk.iotime
- description: Disk Total I/O Time
- unit: "milliseconds/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk.await
- description: Average Completed I/O Operation Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk.avgsz
- description: Average Completed I/O Operation Bandwidth
- unit: "KiB/operation"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk.svctm
- description: Average Service Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: svctm
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.io
- description: Disk I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: mount point
- description: ""
- labels: []
- metrics:
- - name: disk.space
- description: Disk Space Usage for {mounted dir} [{mounted filesystem}]
- unit: "GiB"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
- - name: disk.inodes
- description: Disk Files (inodes) Usage for {mounted dir} [{mounted filesystem}]
- unit: "inodes"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: reserved_for_root
- - name: network device
- description: ""
- labels: []
- metrics:
- - name: net.net
- description: Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: net.packets
- description: Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast_received
- - name: multicast_sent
- - name: net.errors
- description: Interface Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: net.drops
- description: Interface Drops
- unit: "drops/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: net.events
- description: Network Interface Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: frames
- - name: collisions
- - name: carrier
diff --git a/collectors/metadata/schemas/multi-module.json b/collectors/metadata/schemas/multi-module.json
deleted file mode 100644
index 6c332b818..000000000
--- a/collectors/metadata/schemas/multi-module.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "properties": {
- "plugin_name": {
- "type": "string"
- },
- "modules": {
- "type": "array",
- "description": "A list of single module templates",
- "items": {
- "$ref": "./single-module.json"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/collectors/metadata/schemas/single-module.json b/collectors/metadata/schemas/single-module.json
deleted file mode 100644
index 75052b078..000000000
--- a/collectors/metadata/schemas/single-module.json
+++ /dev/null
@@ -1,662 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "type": "object",
- "title": "Netdata collector single module meta",
- "properties": {
- "meta": {
- "type": "object",
- "properties": {
- "plugin_name": {
- "type": "string",
- "description": "Plugin name (e.g. apps.plugin, proc.plugin, go.d.plugin). It must match the name of the executable file in the plugins.d directory."
- },
- "module_name": {
- "type": "string",
- "description": "Module name (e.g. apache, /proc/stat, httpcheck). It usually has the same name as the module configuration file (external plugin) or the section name in netdata.conf (internal plugin)."
- },
- "monitored_instance": {
- "type": "object",
- "description": "Information about the monitored instance (metrics source).",
- "properties": {
- "name": {
- "description": "Metrics source name (e.g. VerneMQ, Network interfaces, Files and directories). Use official spelling for applications.",
- "type": "string"
- },
- "link": {
- "description": "Link to the monitored instance official website if any.",
- "type": "string"
- },
- "categories": {
- "type": "array",
- "description": "Category IDs that this integration falls into. IDs can be found in integrations/categories.yaml",
- "items": {
- "type": "string",
- "description": "String defining integration category"
- }
- },
- "icon_filename": {
- "type": "string",
- "description": "The filename of the integration's icon, as sourced from https://github.com/netdata/website/tree/master/themes/tailwind/static/img."
- }
- },
- "required": [
- "name",
- "link",
- "categories",
- "icon_filename"
- ]
- },
- "keywords": {
- "type": "array",
- "description": "An array of terms related to the integration.",
- "items": {
- "type": "string"
- }
- },
- "related_resources": {
- "type": "object",
- "description": "Available related resources for the monitored instance.",
- "properties": {
- "integrations": {
- "type": "object",
- "description": "All collectors that provide additional metrics for the monitored instance. This may include generic collectors, e.g. 'httpcheck' for web servers to monitor specific endpoints.",
- "properties": {
- "list": {
- "type": "array",
- "description": "List of related integrations.",
- "items": {
- "type": "object",
- "properties": {
- "plugin_name": {
- "type": "string",
- "description": "Related integration plugin name."
- },
- "module_name": {
- "type": "string",
- "description": "Related integration module name."
- }
- },
- "required": [
- "plugin_name",
- "module_name"
- ]
- }
- }
- },
- "required": [
- "list"
- ]
- }
- },
- "required": [
- "integrations"
- ]
- },
- "info_provided_to_referring_integrations": {
- "type": "object",
- "description": "Information that this collector can provide about itself when other integrations mention it. This text will not be appear on this collector's page.",
- "properties": {
- "description": {
- "type": "string",
- "description": "TODO"
- }
- },
- "required": [
- "description"
- ]
- },
- "most_popular": {
- "type": "boolean",
- "description": "Whether or not the integration is to be flagged as most-popular, meaning it will show up at the top of the menu."
- }
- },
- "required": [
- "plugin_name",
- "module_name",
- "monitored_instance",
- "keywords",
- "related_resources",
- "info_provided_to_referring_integrations",
- "most_popular"
- ]
- },
- "overview": {
- "type": "object",
- "properties": {
- "data_collection": {
- "type": "object",
- "description": "An overview of the collected metrics and a detailed description of the data collection method.",
- "properties": {
- "metrics_description": {
- "type": "string",
- "description": "Brief description of what metrics are collected. A suggested approach here is to talk about the areas covered (e.g. health, performance, errors) and the metric scopes."
- },
- "method_description": {
- "type": "string",
- "description": "Description of how metrics are collected (e.g. HTTP requests, establish a TCP connection and send a command, a specific binary execution). A suggested approach here is to provide a detailed description of how the collector gathers metrics: how many connections are established, exact requests/commands executed, exact endpoints used."
- }
- },
- "required": [
- "metrics_description",
- "method_description"
- ]
- },
- "supported_platforms": {
- "type": "object",
- "description": "Supported OS/platforms. By default, all platforms supported by Netdata are considered supported. See https://learn.netdata.cloud/docs/installing/platform-support-policy#currently-supported-platforms.",
- "properties": {
- "include": {
- "type": "array",
- "description": "Only supported OS/platforms. Platforms supported by Netdata will be ignored, only those listed are considered supported.",
- "items": {
- "type": "string",
- "minLength": 2
- }
- },
- "exclude": {
- "type": "array",
- "description": "Unsupported OS/platforms. The result set is all platforms supported by Netdata except for those excluded.",
- "items": {
- "type": "string",
- "minLength": 2
- }
- }
- },
- "required": [
- "include",
- "exclude"
- ]
- },
- "multi-instance": {
- "type": "boolean",
- "description": "Whether this collector supports collecting metrics from multiple (for example, local and remote) instances."
- },
- "additional_permissions": {
- "type": "object",
- "description": "Information about additional permissions other than those required by the Netdata process (e.g. setuid, specific Linux capabilities).",
- "properties": {
- "description": {
- "type": "string"
- }
- },
- "required": [
- "description"
- ]
- },
- "default_behavior": {
- "type": "object",
- "description": "Descriptions of how the data collector works with the default configuration.",
- "properties": {
- "auto_detection": {
- "type": "object",
- "description": "Information about detecting (discovering) monitored instances with default configuration. Example: tries to connect to Apache running on localhost on ports 80, 443 and 8080.",
- "properties": {
- "description": {
- "type": "string"
- }
- },
- "required": [
- "description"
- ]
- },
- "limits": {
- "type": "object",
- "description": "Information about limiting data collection, taking into account the default values of any configuration settings that restrict data collection (including filtering metrics).",
- "properties": {
- "description": {
- "type": "string"
- }
- },
- "required": [
- "description"
- ]
- },
- "performance_impact": {
- "type": "object",
- "description": "Information about the known impact on the performance of the monitored application or system.",
- "properties": {
- "description": {
- "type": "string"
- }
- },
- "required": [
- "description"
- ]
- }
- },
- "required": [
- "auto_detection",
- "limits",
- "performance_impact"
- ]
- }
- },
- "required": [
- "data_collection",
- "supported_platforms",
- "multi-instance",
- "additional_permissions",
- "default_behavior"
- ]
- },
- "setup": {
- "type": "object",
- "description": "Complete information that is needed to enable and configure the data collector.",
- "properties": {
- "prerequisites": {
- "type": "object",
- "description": "Actions the user must take to make the collector work, if any. It includes both configuring Netdata (e.g. if the collector is disabled by default) and configuring the monitored instance (e.g. enabling Apache mod_stats).",
- "properties": {
- "list": {
- "type": "array",
- "description": "List of prerequisites.",
- "items": {
- "type": "object",
- "properties": {
- "title": {
- "type": "string",
- "description": "Title should reflect the description, be short and in the form of a command (e.g. Create netdata user, Enable build-in web server)."
- },
- "description": {
- "type": "string",
- "description": "Steps to follow to meet this prerequisite."
- }
- },
- "required": [
- "title",
- "description"
- ]
- }
- }
- },
- "required": [
- "list"
- ]
- },
- "configuration": {
- "description": "Information on how to configure the collector and available configuration options.",
- "type": "object",
- "properties": {
- "file": {
- "type": "object",
- "description": "Configuration file.",
- "properties": {
- "name": {
- "type": "string",
- "description": "Configuration file name."
- },
- "section_name": {
- "type": "string",
- "description": "The name of the section in the configuration file. Only for data collectors whose configuration is in netdata.conf (e.g. proc.plugin modules)."
- }
- },
- "required": [
- "name"
- ]
- },
- "options": {
- "type": "object",
- "description": "All information about the available configuration options.",
- "properties": {
- "description": {
- "type": "string",
- "description": "Optional common information about options."
- },
- "folding": {
- "$ref": "#/$defs/_folding"
- },
- "list": {
- "type": "array",
- "description": "List of configuration options.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Option name."
- },
- "description": {
- "type": "string",
- "description": "Option description. Must be short. Use 'detailed_description' for a long description."
- },
- "detailed_description": {
- "type": "string",
- "description": "Option detailed description. Use it to describe in details complex options."
- },
- "default_value": {
- "type": [
- "string",
- "number",
- "boolean"
- ],
- "description": "Default value. Leave empty if none."
- },
- "required": {
- "type": "boolean",
- "description": "Indicates whether this option is required or not. The option is required if the collector does not work, if it is not set."
- }
- },
- "required": [
- "name",
- "description",
- "default_value",
- "required"
- ]
- }
- }
- },
- "required": [
- "description",
- "folding",
- "list"
- ]
- },
- "examples": {
- "type": "object",
- "description": "Configuration examples. The more examples the better!",
- "properties": {
- "folding": {
- "$ref": "#/$defs/_folding"
- },
- "list": {
- "type": "array",
- "description": "List of configuration examples.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Example name."
- },
- "folding": {
- "$ref": "#/$defs/_folding_relaxed"
- },
- "description": {
- "type": "string",
- "description": "Example description."
- },
- "config": {
- "type": "string",
- "description": "Example configuration."
- }
- },
- "required": [
- "name",
- "description",
- "config"
- ]
- }
- }
- },
- "required": [
- "folding",
- "list"
- ]
- }
- },
- "required": [
- "file",
- "options",
- "examples"
- ]
- }
- },
- "required": [
- "prerequisites",
- "configuration"
- ]
- },
- "troubleshooting": {
- "type": "object",
- "description": "Information needed to troubleshoot issues with this collector.",
- "properties": {
- "problems": {
- "type": "object",
- "description": "Common problems that users face again and again... and their solutions.",
- "properties": {
- "list": {
- "type": "array",
- "description": "List of common problems.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Problem name."
- },
- "description": {
- "type": "string",
- "description": "Explanation of the problem and its solution."
- }
- }
- },
- "required": [
- "name",
- "description"
- ]
- }
- },
- "required": [
- "list"
- ]
- }
- },
- "required": [
- "problems"
- ]
- },
- "alerts": {
- "type": "array",
- "description": "The list of configured alerts shipped with Netdata for this collector.",
- "items": {
- "type": "object",
- "description": "Information about the configured alert.",
- "properties": {
- "name": {
- "type": "string",
- "description": "Alert's 'alarm' or 'template' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-alarm-or-template)."
- },
- "link": {
- "type": "string",
- "description": "Link to github .conf file that this alert originates from"
- },
- "metric": {
- "type": "string",
- "description": "Alert's 'on' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-on)."
- },
- "info": {
- "type": "string",
- "description": "Alert's 'info' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-info)."
- },
- "os": {
- "type": "string",
- "description": "Alert's 'os' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-os)."
- }
- },
- "required": [
- "name",
- "link",
- "metric",
- "info"
- ]
- }
- },
- "metrics": {
- "type": "object",
- "description": "Collected metrics grouped by scope. The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.",
- "properties": {
- "folding": {
- "$ref": "#/$defs/_folding"
- },
- "description": {
- "type": "string",
- "description": "General description of collected metrics/scopes."
- },
- "availability": {
- "type": "array",
- "description": "Metrics collection availability conditions. Some metrics are only available when certain conditions are met. For example, Apache exposes additional metrics when Extended status is configured, Consul exposes different set of metrics depends on its mode. This field should list the available conditions that will later be matched for each of the metrics.",
- "items": {
- "type": "string",
- "description": "Availability condition name."
- }
- },
- "scopes": {
- "type": "array",
- "description": "List of scopes and their metrics.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Scope name."
- },
- "description": {
- "type": "string",
- "description": "Scope description."
- },
- "labels": {
- "type": "array",
- "description": "Label set of the scope.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Label name."
- },
- "description": {
- "type": "string",
- "description": "Label description."
- }
- },
- "required": [
- "name",
- "description"
- ]
- }
- },
- "metrics": {
- "type": "array",
- "description": "List of collected metrics (chart contexts) in the scope.",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Metric name (chart context)."
- },
- "availability": {
- "type": "array",
- "description": "Metric collection availability conditions. An empty list means that it is available for all conditions defined in 'metrics.availability'.",
- "items": {
- "type": "string",
- "description": "Availability condition name."
- }
- },
- "description": {
- "type": "string",
- "description": "Metric description (chart title)."
- },
- "unit": {
- "type": "string",
- "description": "Metric description (chart unit)."
- },
- "chart_type": {
- "type": "string",
- "description": "Metric description (chart type).",
- "enum": [
- "line",
- "area",
- "stacked"
- ]
- },
- "dimensions": {
- "type": "array",
- "description": "",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string",
- "description": "Dimension name."
- }
- },
- "required": [
- "name"
- ]
- }
- }
- },
- "required": [
- "name",
- "description",
- "unit",
- "chart_type",
- "dimensions"
- ]
- }
- }
- },
- "required": [
- "name",
- "description",
- "labels",
- "metrics"
- ]
- }
- }
- },
- "required": [
- "folding",
- "description",
- "availability",
- "scopes"
- ]
- }
- },
- "required": [
- "meta",
- "overview",
- "setup",
- "troubleshooting",
- "alerts",
- "metrics"
- ],
- "$defs": {
- "_folding": {
- "type": "object",
- "description": "Content folding settings.",
- "properties": {
- "title": {
- "description": "Folded content summary title.",
- "type": "string"
- },
- "enabled": {
- "description": "Determines if this content should be folded.",
- "type": "boolean"
- }
- },
- "required": [
- "title",
- "enabled"
- ]
- },
- "_folding_relaxed": {
- "type": "object",
- "description": "Content folding settings with optional title.",
- "properties": {
- "title": {
- "description": "Folded content summary title.",
- "type": "string"
- },
- "enabled": {
- "description": "Determines if this content should be folded.",
- "type": "boolean"
- }
- },
- "required": [
- "enabled"
- ]
- }
- }
-}
diff --git a/collectors/metadata/single-module-template.yaml b/collectors/metadata/single-module-template.yaml
deleted file mode 100644
index 7f0403509..000000000
--- a/collectors/metadata/single-module-template.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-meta:
- plugin_name: ""
- module_name: ""
- alternative_monitored_instances: []
- monitored_instance:
- name: ""
- link: ""
- categories: []
- icon_filename: ""
- related_resources:
- integrations:
- list:
- - plugin_name: ""
- module_name: ""
- info_provided_to_referring_integrations:
- description: ""
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ""
- method_description: ""
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ""
- default_behavior:
- auto_detection:
- description: ""
- limits:
- description: ""
- performance_impact:
- description: ""
-setup:
- prerequisites:
- list:
- - title: ""
- description: ""
- configuration:
- file:
- name: ""
- description: ""
- options:
- description: ""
- folding:
- title: ""
- enabled: true
- list:
- - name: ""
- default_value: ""
- description: ""
- required: false
- examples:
- folding:
- enabled: true
- title: ""
- list:
- - name: ""
- folding:
- enabled: false
- description: ""
- config: ""
-troubleshooting:
- problems:
- list:
- - name: ""
- description: ""
-alerts:
- - info: ""
- link: ""
- metric: ""
- name: ""
- os: ""
-metrics:
- folding:
- enabled: false
- title: ""
- description: ""
- availability:
- - ""
- scopes:
- - name: ""
- description: ""
- labels:
- - name: ""
- description: ""
- metrics:
- - name: ""
- availability:
- - ""
- description: ""
- unit: ""
- chart_type: ""
- dimensions:
- - name: ""
diff --git a/collectors/nfacct.plugin/metadata.yaml b/collectors/nfacct.plugin/metadata.yaml
index 2dbd31ec2..943471a37 100644
--- a/collectors/nfacct.plugin/metadata.yaml
+++ b/collectors/nfacct.plugin/metadata.yaml
@@ -1,119 +1,133 @@
-meta:
- plugin_name: nfacct.plugin
- module_name: nfacct.plugin
- monitored_instance:
- name: Netfilter
- link: ''
- categories:
- - data-collection.networking-stack-and-network-interfaces
- icon_filename: 'netfilter.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Netfilter metrics for optimal packet filtering and manipulation. Keep tabs on packet counts, dropped packets, and error rates to secure network operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: nfacct.plugin
+modules:
+ - meta:
+ plugin_name: nfacct.plugin
+ module_name: nfacct.plugin
+ monitored_instance:
+ name: Netfilter
+ link: 'https://www.netfilter.org/'
+ categories:
+ - data-collection.linux-systems.firewall-metrics
+ icon_filename: 'netfilter.png'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'Monitor Netfilter metrics for optimal packet filtering and manipulation. Keep tabs on packet counts, dropped packets, and error rates to secure network operations.'
+ method_description: 'Netdata uses libmnl (https://www.netfilter.org/projects/libmnl/index.html) to collect information.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: 'This plugin needs setuid.'
+ default_behavior:
+ auto_detection:
+ description: 'This plugin uses socket to connect with netfilter to collect data'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: Install required packages
+ description: |
+ Install `libmnl-dev` and `libnetfilter-acct-dev` using the package manager of your system.
+ configuration:
+ file:
+ name: 'netdata.conf'
+ section_name: '[plugin:nfacct]'
+ description: 'This is netdata main configuration file'
+ options:
+ description: ''
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Additinal parameters for collector
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: netfilter.netlink_new
- description: Connection Tracker New Connections
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: new
- - name: ignore
- - name: invalid
- - name: netfilter.netlink_changes
- description: Connection Tracker Changes
- unit: "changes/s"
- chart_type: line
- dimensions:
- - name: insert
- - name: delete
- - name: delete_list
- - name: netfilter.netlink_search
- description: Connection Tracker Searches
- unit: "searches/s"
- chart_type: line
- dimensions:
- - name: searched
- - name: search_restart
- - name: found
- - name: netfilter.netlink_errors
- description: Connection Tracker Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: icmp_error
- - name: insert_failed
- - name: drop
- - name: early_drop
- - name: netfilter.netlink_expect
- description: Connection Tracker Expectations
- unit: "expectations/s"
- chart_type: line
- dimensions:
- - name: created
- - name: deleted
- - name: new
- - name: netfilter.nfacct_packets
- description: Netfilter Accounting Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: a dimension per nfacct object
- - name: netfilter.nfacct_bytes
- description: Netfilter Accounting Bandwidth
- unit: "kilobytes/s"
- chart_type: line
- dimensions:
- - name: a dimension per nfacct object
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: netfilter.netlink_new
+ description: Connection Tracker New Connections
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: new
+ - name: ignore
+ - name: invalid
+ - name: netfilter.netlink_changes
+ description: Connection Tracker Changes
+ unit: "changes/s"
+ chart_type: line
+ dimensions:
+ - name: insert
+ - name: delete
+ - name: delete_list
+ - name: netfilter.netlink_search
+ description: Connection Tracker Searches
+ unit: "searches/s"
+ chart_type: line
+ dimensions:
+ - name: searched
+ - name: search_restart
+ - name: found
+ - name: netfilter.netlink_errors
+ description: Connection Tracker Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: icmp_error
+ - name: insert_failed
+ - name: drop
+ - name: early_drop
+ - name: netfilter.netlink_expect
+ description: Connection Tracker Expectations
+ unit: "expectations/s"
+ chart_type: line
+ dimensions:
+ - name: created
+ - name: deleted
+ - name: new
+ - name: netfilter.nfacct_packets
+ description: Netfilter Accounting Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per nfacct object
+ - name: netfilter.nfacct_bytes
+ description: Netfilter Accounting Bandwidth
+ unit: "kilobytes/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per nfacct object
diff --git a/collectors/nfacct.plugin/metrics.csv b/collectors/nfacct.plugin/metrics.csv
deleted file mode 100644
index 7bd00d3f1..000000000
--- a/collectors/nfacct.plugin/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-netfilter.netlink_new,,"new, ignore, invalid",connections/s,"Connection Tracker New Connections",line,,nfacct.plugin,
-netfilter.netlink_changes,,"insert, delete, delete_list",changes/s,"Connection Tracker Changes",line,,nfacct.plugin,
-netfilter.netlink_search,,"searched, search_restart, found",searches/s,"Connection Tracker Searches",line,,nfacct.plugin,
-netfilter.netlink_errors,,"icmp_error, insert_failed, drop, early_drop",events/s,"Connection Tracker Errors",line,,nfacct.plugin,
-netfilter.netlink_expect,,"created, deleted, new",expectations/s,"Connection Tracker Expectations",line,,nfacct.plugin,
-netfilter.nfacct_packets,,a dimension per nfacct object,packets/s,"Netfilter Accounting Packets",line,,nfacct.plugin,
-netfilter.nfacct_bytes,,a dimension per nfacct object,kilobytes/s,"Netfilter Accounting Bandwidth",line,,nfacct.plugin,
\ No newline at end of file
diff --git a/collectors/perf.plugin/metadata.yaml b/collectors/perf.plugin/metadata.yaml
index a93970e52..d7539b502 100644
--- a/collectors/perf.plugin/metadata.yaml
+++ b/collectors/perf.plugin/metadata.yaml
@@ -1,183 +1,216 @@
-meta:
- plugin_name: perf.plugin
- module_name: perf.plugin
- monitored_instance:
- name: CPU performance
- link: ''
- categories:
- - data-collection.linux-systems
- icon_filename: 'bolt.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor CPU performance to ensure optimal computational operations. Monitor core usage, load averages, and thermal throttling for seamless computation tasks.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: perf.plugin
+modules:
+ - meta:
+ plugin_name: perf.plugin
+ module_name: perf.plugin
+ monitored_instance:
+ name: CPU performance
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.linux-systems
+ icon_filename: "bolt.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - linux
+ - cpu performance
+ - cpu cache
+ - perf.plugin
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors CPU performance metrics about cycles, instructions, migrations, cache operations and more."
+ method_description: "It uses syscall (2) to open a file descriptior to monitor the perf events."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "It needs setuid to use necessary syscall to collect perf events. Netada sets the permission during installation time."
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:perf]"
+ description: "The main netdata configuration file."
+ options:
+ description: |
+ You can get the available options running:
+
+ ```bash
+ /usr/libexec/netdata/plugins.d/perf.plugin --help
+ ````
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: command options
+ description: Command options that specify charts shown by plugin.
+ default_value: 1
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: All metrics
+ folding:
+ enabled: false
+ description: Monitor all metrics available.
+ config: |
+ [plugin:perf]
+ command options = all
+ - name: CPU cycles
+ description: Monitor CPU cycles.
+ config: |
+ [plugin:perf]
+ command options = cycles
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: perf.cpu_cycles
- description: CPU cycles
- unit: "cycles/s"
- chart_type: line
- dimensions:
- - name: cpu
- - name: ref_cpu
- - name: perf.instructions
- description: Instructions
- unit: "instructions/s"
- chart_type: line
- dimensions:
- - name: instructions
- - name: perf.instructions_per_cycle
- description: Instructions per Cycle(IPC)
- unit: "instructions/cycle"
- chart_type: line
- dimensions:
- - name: ipc
- - name: perf.branch_instructions
- description: Branch instructions
- unit: "instructions/s"
- chart_type: line
- dimensions:
- - name: instructions
- - name: misses
- - name: perf.cache
- description: Cache operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: references
- - name: misses
- - name: perf.bus_cycles
- description: Bus cycles
- unit: "cycles/s"
- chart_type: line
- dimensions:
- - name: bus
- - name: perf.stalled_cycles
- description: Stalled frontend and backend cycles
- unit: "cycles/s"
- chart_type: line
- dimensions:
- - name: frontend
- - name: backend
- - name: perf.migrations
- description: CPU migrations
- unit: "migrations"
- chart_type: line
- dimensions:
- - name: migrations
- - name: perf.alignment_faults
- description: Alignment faults
- unit: "faults"
- chart_type: line
- dimensions:
- - name: faults
- - name: perf.emulation_faults
- description: Emulation faults
- unit: "faults"
- chart_type: line
- dimensions:
- - name: faults
- - name: perf.l1d_cache
- description: L1D cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
- - name: read_misses
- - name: write_access
- - name: write_misses
- - name: perf.l1d_cache_prefetch
- description: L1D prefetch cache operations
- unit: "prefetches/s"
- chart_type: line
- dimensions:
- - name: prefetches
- - name: perf.l1i_cache
- description: L1I cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
- - name: read_misses
- - name: perf.ll_cache
- description: LL cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
- - name: read_misses
- - name: write_access
- - name: write_misses
- - name: perf.dtlb_cache
- description: DTLB cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
- - name: read_misses
- - name: write_access
- - name: write_misses
- - name: perf.itlb_cache
- description: ITLB cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
- - name: read_misses
- - name: perf.pbu_cache
- description: PBU cache operations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: read_access
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: perf.cpu_cycles
+ description: CPU cycles
+ unit: "cycles/s"
+ chart_type: line
+ dimensions:
+ - name: cpu
+ - name: ref_cpu
+ - name: perf.instructions
+ description: Instructions
+ unit: "instructions/s"
+ chart_type: line
+ dimensions:
+ - name: instructions
+ - name: perf.instructions_per_cycle
+ description: Instructions per Cycle(IPC)
+ unit: "instructions/cycle"
+ chart_type: line
+ dimensions:
+ - name: ipc
+ - name: perf.branch_instructions
+ description: Branch instructions
+ unit: "instructions/s"
+ chart_type: line
+ dimensions:
+ - name: instructions
+ - name: misses
+ - name: perf.cache
+ description: Cache operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: references
+ - name: misses
+ - name: perf.bus_cycles
+ description: Bus cycles
+ unit: "cycles/s"
+ chart_type: line
+ dimensions:
+ - name: bus
+ - name: perf.stalled_cycles
+ description: Stalled frontend and backend cycles
+ unit: "cycles/s"
+ chart_type: line
+ dimensions:
+ - name: frontend
+ - name: backend
+ - name: perf.migrations
+ description: CPU migrations
+ unit: "migrations"
+ chart_type: line
+ dimensions:
+ - name: migrations
+ - name: perf.alignment_faults
+ description: Alignment faults
+ unit: "faults"
+ chart_type: line
+ dimensions:
+ - name: faults
+ - name: perf.emulation_faults
+ description: Emulation faults
+ unit: "faults"
+ chart_type: line
+ dimensions:
+ - name: faults
+ - name: perf.l1d_cache
+ description: L1D cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
+ - name: read_misses
+ - name: write_access
+ - name: write_misses
+ - name: perf.l1d_cache_prefetch
+ description: L1D prefetch cache operations
+ unit: "prefetches/s"
+ chart_type: line
+ dimensions:
+ - name: prefetches
+ - name: perf.l1i_cache
+ description: L1I cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
+ - name: read_misses
+ - name: perf.ll_cache
+ description: LL cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
+ - name: read_misses
+ - name: write_access
+ - name: write_misses
+ - name: perf.dtlb_cache
+ description: DTLB cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
+ - name: read_misses
+ - name: write_access
+ - name: write_misses
+ - name: perf.itlb_cache
+ description: ITLB cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
+ - name: read_misses
+ - name: perf.pbu_cache
+ description: PBU cache operations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: read_access
diff --git a/collectors/perf.plugin/metrics.csv b/collectors/perf.plugin/metrics.csv
deleted file mode 100644
index 786e0743f..000000000
--- a/collectors/perf.plugin/metrics.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-perf.cpu_cycles,,"cpu, ref_cpu",cycles/s,"CPU cycles",line,,perf.plugin,
-perf.instructions,,instructions,instructions/s,"Instructions",line,,perf.plugin,
-perf.instructions_per_cycle,,ipc,instructions/cycle,"Instructions per Cycle(IPC)",line,,perf.plugin,
-perf.branch_instructions,,"instructions, misses",instructions/s,"Branch instructions",line,,perf.plugin,
-perf.cache,,"references, misses",operations/s,"Cache operations",line,,perf.plugin,
-perf.bus_cycles,,bus,cycles/s,"Bus cycles",line,,perf.plugin,
-perf.stalled_cycles,,"frontend, backend",cycles/s,"Stalled frontend and backend cycles",line,,perf.plugin,
-perf.migrations,,migrations,migrations,"CPU migrations",line,,perf.plugin,
-perf.alignment_faults,,faults,faults,"Alignment faults",line,,perf.plugin,
-perf.emulation_faults,,faults,faults,"Emulation faults",line,,perf.plugin,
-perf.l1d_cache,,"read_access, read_misses, write_access, write_misses",events/s,"L1D cache operations",line,,perf.plugin,
-perf.l1d_cache_prefetch,,prefetches,prefetches/s,"L1D prefetch cache operations",line,,perf.plugin,
-perf.l1i_cache,,"read_access, read_misses",events/s,"L1I cache operations",line,,perf.plugin,
-perf.ll_cache,,"read_access, read_misses, write_access, write_misses",events/s,"LL cache operations",line,,perf.plugin,
-perf.dtlb_cache,,"read_access, read_misses, write_access, write_misses",events/s,"DTLB cache operations",line,,perf.plugin,
-perf.itlb_cache,,"read_access, read_misses",events/s,"ITLB cache operations",line,,perf.plugin,
-perf.pbu_cache,,read_access,events/s,"PBU cache operations",line,,perf.plugin,
\ No newline at end of file
diff --git a/collectors/plugins.d/gperf-config.txt b/collectors/plugins.d/gperf-config.txt
index 43be129e5..b8140e66c 100644
--- a/collectors/plugins.d/gperf-config.txt
+++ b/collectors/plugins.d/gperf-config.txt
@@ -12,41 +12,44 @@ PARSER_KEYWORD;
#
# Plugins Only Keywords
#
-FLUSH, 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1
-DISABLE, 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2
-EXIT, 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3
-HOST, 71, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 4
-HOST_DEFINE, 72, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 5
-HOST_DEFINE_END, 73, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 6
-HOST_LABEL, 74, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 7
+FLUSH, 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1
+DISABLE, 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2
+EXIT, 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3
+HOST, 71, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 4
+HOST_DEFINE, 72, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 5
+HOST_DEFINE_END, 73, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 6
+HOST_LABEL, 74, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 7
#
# Common keywords
#
-BEGIN, 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
-CHART, 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 9
-CLABEL, 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 10
-CLABEL_COMMIT, 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 11
-DIMENSION, 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 12
-END, 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13
-FUNCTION, 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 14
-FUNCTION_RESULT_BEGIN, 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15
-LABEL, 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16
-OVERWRITE, 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 17
-SET, 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 18
-VARIABLE, 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19
+BEGIN, 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8
+CHART, 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 9
+CLABEL, 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 10
+CLABEL_COMMIT, 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 11
+DIMENSION, 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 12
+END, 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13
+FUNCTION, 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 14
+FUNCTION_RESULT_BEGIN, 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15
+LABEL, 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16
+OVERWRITE, 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 17
+SET, 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 18
+VARIABLE, 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19
+DYNCFG_ENABLE, 101, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 20
+DYNCFG_REGISTER_MODULE, 102, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 21
+REPORT_JOB_STATUS, 110, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 22
#
# Streaming only keywords
#
-CLAIMED_ID, 61, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 20
-BEGIN2, 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 21
-SET2, 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 22
-END2, 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
+CLAIMED_ID, 61, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23
+BEGIN2, 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
+SET2, 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
+END2, 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 26
#
# Streaming Replication keywords
#
-CHART_DEFINITION_END, 33, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24
-RBEGIN, 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25
-RDSTATE, 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 26
-REND, 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
-RSET, 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
-RSSTATE, 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
+CHART_DEFINITION_END, 33, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27
+RBEGIN, 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28
+RDSTATE, 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29
+REND, 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30
+RSET, 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31
+RSSTATE, 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32
diff --git a/collectors/plugins.d/gperf-hashtable.h b/collectors/plugins.d/gperf-hashtable.h
index b9e58975e..e7d20126f 100644
--- a/collectors/plugins.d/gperf-hashtable.h
+++ b/collectors/plugins.d/gperf-hashtable.h
@@ -30,12 +30,12 @@
#endif
-#define GPERF_PARSER_TOTAL_KEYWORDS 29
+#define GPERF_PARSER_TOTAL_KEYWORDS 32
#define GPERF_PARSER_MIN_WORD_LENGTH 3
-#define GPERF_PARSER_MAX_WORD_LENGTH 21
-#define GPERF_PARSER_MIN_HASH_VALUE 4
-#define GPERF_PARSER_MAX_HASH_VALUE 36
-/* maximum key range = 33, duplicates = 0 */
+#define GPERF_PARSER_MAX_WORD_LENGTH 22
+#define GPERF_PARSER_MIN_HASH_VALUE 3
+#define GPERF_PARSER_MAX_HASH_VALUE 41
+/* maximum key range = 39, duplicates = 0 */
#ifdef __GNUC__
__inline
@@ -49,99 +49,105 @@ gperf_keyword_hash_function (register const char *str, register size_t len)
{
static unsigned char asso_values[] =
{
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 15, 10, 1, 1, 9,
- 4, 37, 0, 20, 37, 37, 9, 37, 14, 0,
- 37, 37, 1, 0, 37, 7, 13, 37, 18, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
- 37, 37, 37, 37, 37, 37
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 16, 7, 2, 11, 0,
+ 8, 42, 3, 9, 42, 42, 9, 42, 0, 2,
+ 42, 42, 1, 3, 42, 7, 17, 42, 27, 2,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
+ 42, 42, 42, 42, 42, 42
};
return len + asso_values[(unsigned char)str[1]] + asso_values[(unsigned char)str[0]];
}
static PARSER_KEYWORD gperf_keywords[] =
{
- {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
+ {(char*)0}, {(char*)0}, {(char*)0},
+#line 30 "gperf-config.txt"
+ {"END", 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
+#line 46 "gperf-config.txt"
+ {"END2", 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 26},
+#line 53 "gperf-config.txt"
+ {"REND", 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 30},
+#line 35 "gperf-config.txt"
+ {"SET", 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 18},
+#line 45 "gperf-config.txt"
+ {"SET2", 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25},
+#line 54 "gperf-config.txt"
+ {"RSET", 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 31},
#line 18 "gperf-config.txt"
- {"HOST", 71, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 4},
-#line 51 "gperf-config.txt"
- {"RSET", 21, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
+ {"HOST", 71, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 4},
#line 26 "gperf-config.txt"
- {"CHART", 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 9},
- {(char*)0},
-#line 52 "gperf-config.txt"
- {"RSSTATE", 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
-#line 49 "gperf-config.txt"
- {"RDSTATE", 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 26},
+ {"CHART", 32, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 9},
+#line 55 "gperf-config.txt"
+ {"RSSTATE", 24, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 32},
+#line 25 "gperf-config.txt"
+ {"BEGIN", 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
+#line 44 "gperf-config.txt"
+ {"BEGIN2", 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
+#line 51 "gperf-config.txt"
+ {"RBEGIN", 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 28},
#line 21 "gperf-config.txt"
- {"HOST_LABEL", 74, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 7},
+ {"HOST_LABEL", 74, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 7},
#line 19 "gperf-config.txt"
- {"HOST_DEFINE", 72, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 5},
-#line 35 "gperf-config.txt"
- {"SET", 11, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 18},
-#line 42 "gperf-config.txt"
- {"SET2", 1, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 22},
-#line 50 "gperf-config.txt"
- {"REND", 25, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
-#line 20 "gperf-config.txt"
- {"HOST_DEFINE_END", 73, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 6},
+ {"HOST_DEFINE", 72, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 5},
#line 27 "gperf-config.txt"
- {"CLABEL", 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 10},
-#line 48 "gperf-config.txt"
- {"RBEGIN", 22, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 25},
+ {"CLABEL", 34, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 10},
+#line 39 "gperf-config.txt"
+ {"REPORT_JOB_STATUS", 110, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 22},
+#line 52 "gperf-config.txt"
+ {"RDSTATE", 23, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 29},
+#line 20 "gperf-config.txt"
+ {"HOST_DEFINE_END", 73, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 6},
+#line 43 "gperf-config.txt"
+ {"CLAIMED_ID", 61, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
#line 15 "gperf-config.txt"
- {"FLUSH", 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
+ {"FLUSH", 97, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 1},
#line 31 "gperf-config.txt"
- {"FUNCTION", 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 14},
-#line 40 "gperf-config.txt"
- {"CLAIMED_ID", 61, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 20},
-#line 47 "gperf-config.txt"
- {"CHART_DEFINITION_END", 33, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 24},
-#line 34 "gperf-config.txt"
- {"OVERWRITE", 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 17},
+ {"FUNCTION", 41, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 14},
#line 28 "gperf-config.txt"
- {"CLABEL_COMMIT", 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 11},
-#line 25 "gperf-config.txt"
- {"BEGIN", 12, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 8},
-#line 41 "gperf-config.txt"
- {"BEGIN2", 2, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 21},
-#line 30 "gperf-config.txt"
- {"END", 13, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 13},
-#line 43 "gperf-config.txt"
- {"END2", 3, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 23},
+ {"CLABEL_COMMIT", 35, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 11},
+#line 50 "gperf-config.txt"
+ {"CHART_DEFINITION_END", 33, PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 27},
+#line 37 "gperf-config.txt"
+ {"DYNCFG_ENABLE", 101, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 20},
#line 16 "gperf-config.txt"
- {"DISABLE", 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
-#line 33 "gperf-config.txt"
- {"LABEL", 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
+ {"DISABLE", 98, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 2},
+#line 34 "gperf-config.txt"
+ {"OVERWRITE", 52, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 17},
#line 29 "gperf-config.txt"
- {"DIMENSION", 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 12},
+ {"DIMENSION", 31, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 12},
+#line 33 "gperf-config.txt"
+ {"LABEL", 51, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 16},
#line 17 "gperf-config.txt"
- {"EXIT", 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
-#line 32 "gperf-config.txt"
- {"FUNCTION_RESULT_BEGIN", 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
+ {"EXIT", 99, PARSER_INIT_PLUGINSD, WORKER_PARSER_FIRST_JOB + 3},
{(char*)0}, {(char*)0}, {(char*)0},
+#line 38 "gperf-config.txt"
+ {"DYNCFG_REGISTER_MODULE", 102, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 21},
+#line 32 "gperf-config.txt"
+ {"FUNCTION_RESULT_BEGIN", 42, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 15},
+ {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0},
#line 36 "gperf-config.txt"
- {"VARIABLE", 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19}
+ {"VARIABLE", 53, PARSER_INIT_PLUGINSD|PARSER_INIT_STREAMING, WORKER_PARSER_FIRST_JOB + 19}
};
PARSER_KEYWORD *
diff --git a/collectors/plugins.d/plugins_d.c b/collectors/plugins.d/plugins_d.c
index 6a235b4e6..08c26a198 100644
--- a/collectors/plugins.d/plugins_d.c
+++ b/collectors/plugins.d/plugins_d.c
@@ -217,6 +217,11 @@ void *pluginsd_main(void *ptr)
// disable some plugins by default
config_get_boolean(CONFIG_SECTION_PLUGINS, "slabinfo", CONFIG_BOOLEAN_NO);
+ // it crashes (both threads) on Alpine after we made it multi-threaded
+ // works with "--device /dev/ipmi0", but this is not default
+ // see https://github.com/netdata/netdata/pull/15564 for details
+ if (getenv("NETDATA_LISTENER_PORT"))
+ config_get_boolean(CONFIG_SECTION_PLUGINS, "freeipmi", CONFIG_BOOLEAN_NO);
// store the errno for each plugins directory
// so that we don't log broken directories on each loop
diff --git a/collectors/plugins.d/plugins_d.h b/collectors/plugins.d/plugins_d.h
index fe43a19f5..4988b5071 100644
--- a/collectors/plugins.d/plugins_d.h
+++ b/collectors/plugins.d/plugins_d.h
@@ -43,6 +43,11 @@
#define PLUGINSD_KEYWORD_HOST_LABEL "HOST_LABEL"
#define PLUGINSD_KEYWORD_HOST "HOST"
+#define PLUGINSD_KEYWORD_DYNCFG_ENABLE "DYNCFG_ENABLE"
+#define PLUGINSD_KEYWORD_DYNCFG_REGISTER_MODULE "DYNCFG_REGISTER_MODULE"
+
+#define PLUGINSD_KEYWORD_REPORT_JOB_STATUS "REPORT_JOB_STATUS"
+
#define PLUGINSD_KEYWORD_EXIT "EXIT"
#define PLUGINS_FUNCTIONS_TIMEOUT_DEFAULT 10 // seconds
@@ -80,6 +85,9 @@ struct plugind {
time_t started_t;
+ const DICTIONARY_ITEM *cfg_dict_item;
+ struct configurable_plugin *configuration;
+
struct plugind *prev;
struct plugind *next;
};
@@ -91,8 +99,6 @@ void pluginsd_process_thread_cleanup(void *ptr);
size_t pluginsd_initialize_plugin_directories();
-
-
#define pluginsd_function_result_begin_to_buffer(wb, transaction, code, content_type, expires) \
buffer_sprintf(wb \
, PLUGINSD_KEYWORD_FUNCTION_RESULT_BEGIN " \"%s\" %d \"%s\" %ld\n" \
@@ -117,4 +123,13 @@ size_t pluginsd_initialize_plugin_directories();
#define pluginsd_function_result_end_to_stdout() \
fprintf(stdout, "\n" PLUGINSD_KEYWORD_FUNCTION_RESULT_END "\n")
+static inline void pluginsd_function_json_error(const char *transaction, int code, const char *msg) {
+ char buffer[PLUGINSD_LINE_MAX + 1];
+ json_escape_string(buffer, msg, PLUGINSD_LINE_MAX);
+
+ pluginsd_function_result_begin_to_stdout(transaction, code, "application/json", now_realtime_sec());
+ fprintf(stdout, "{\"status\":%d,\"error_message\":\"%s\"}", code, buffer);
+ pluginsd_function_result_end_to_stdout();
+}
+
#endif /* NETDATA_PLUGINS_D_H */
diff --git a/collectors/plugins.d/pluginsd_parser.c b/collectors/plugins.d/pluginsd_parser.c
index cda17710c..19aa4544b 100644
--- a/collectors/plugins.d/pluginsd_parser.c
+++ b/collectors/plugins.d/pluginsd_parser.c
@@ -699,6 +699,7 @@ struct inflight_function {
usec_t timeout_ut;
usec_t started_ut;
usec_t sent_ut;
+ const char *payload;
};
static void inflight_functions_insert_callback(const DICTIONARY_ITEM *item, void *func, void *parser_ptr) {
@@ -710,7 +711,8 @@ static void inflight_functions_insert_callback(const DICTIONARY_ITEM *item, void
pf->code = HTTP_RESP_GATEWAY_TIMEOUT;
char buffer[2048 + 1];
- snprintfz(buffer, 2048, "FUNCTION %s %d \"%s\"\n",
+ snprintfz(buffer, 2048, "%s %s %d \"%s\"\n",
+ pf->payload ? "FUNCTION_PAYLOAD" : "FUNCTION",
dictionary_acquired_item_name(item),
pf->timeout,
string2str(pf->function));
@@ -730,6 +732,25 @@ static void inflight_functions_insert_callback(const DICTIONARY_ITEM *item, void
string2str(pf->function), dictionary_acquired_item_name(item), ret,
pf->sent_ut - pf->started_ut);
}
+
+ if (!pf->payload)
+ return;
+
+ // send the payload to the plugin
+ ret = send_to_plugin(pf->payload, parser);
+
+ if(ret < 0) {
+ netdata_log_error("FUNCTION_PAYLOAD: failed to send function to plugin, error %d", ret);
+ rrd_call_function_error(pf->destination_wb, "Failed to communicate with collector", HTTP_RESP_BACKEND_FETCH_FAILED);
+ }
+ else {
+ internal_error(LOG_FUNCTIONS,
+ "FUNCTION_PAYLOAD '%s' with transaction '%s' sent to collector (%d bytes, in %llu usec)",
+ string2str(pf->function), dictionary_acquired_item_name(item), ret,
+ pf->sent_ut - pf->started_ut);
+ }
+
+ send_to_plugin("\nFUNCTION_PAYLOAD_END\n", parser);
}
static bool inflight_functions_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *func __maybe_unused, void *new_func, void *parser_ptr __maybe_unused) {
@@ -800,6 +821,7 @@ static int pluginsd_execute_function_callback(BUFFER *destination_wb, int timeou
.function = string_strdupz(function),
.callback = callback,
.callback_data = callback_data,
+ .payload = NULL
};
uuid_t uuid;
@@ -1807,6 +1829,264 @@ static inline PARSER_RC pluginsd_exit(char **words __maybe_unused, size_t num_wo
return PARSER_RC_STOP;
}
+struct mutex_cond {
+ pthread_mutex_t lock;
+ pthread_cond_t cond;
+ int rc;
+};
+
+static void virt_fnc_got_data_cb(BUFFER *wb, int code, void *callback_data)
+{
+ struct mutex_cond *ctx = callback_data;
+ pthread_mutex_lock(&ctx->lock);
+ ctx->rc = code;
+ pthread_cond_broadcast(&ctx->cond);
+ pthread_mutex_unlock(&ctx->lock);
+}
+
+#define VIRT_FNC_TIMEOUT 1
+dyncfg_config_t call_virtual_function_blocking(PARSER *parser, const char *name, int *rc, const char *payload) {
+ usec_t now = now_realtime_usec();
+ BUFFER *wb = buffer_create(4096, NULL);
+
+ struct mutex_cond cond = {
+ .lock = PTHREAD_MUTEX_INITIALIZER,
+ .cond = PTHREAD_COND_INITIALIZER
+ };
+
+ struct inflight_function tmp = {
+ .started_ut = now,
+ .timeout_ut = now + VIRT_FNC_TIMEOUT + USEC_PER_SEC,
+ .destination_wb = wb,
+ .timeout = VIRT_FNC_TIMEOUT,
+ .function = string_strdupz(name),
+ .callback = virt_fnc_got_data_cb,
+ .callback_data = &cond,
+ .payload = payload,
+ };
+
+ uuid_t uuid;
+ uuid_generate_time(uuid);
+
+ char key[UUID_STR_LEN];
+ uuid_unparse_lower(uuid, key);
+
+ dictionary_write_lock(parser->inflight.functions);
+
+ // if there is any error, our dictionary callbacks will call the caller callback to notify
+ // the caller about the error - no need for error handling here.
+ dictionary_set(parser->inflight.functions, key, &tmp, sizeof(struct inflight_function));
+
+ if(!parser->inflight.smaller_timeout || tmp.timeout_ut < parser->inflight.smaller_timeout)
+ parser->inflight.smaller_timeout = tmp.timeout_ut;
+
+ // garbage collect stale inflight functions
+ if(parser->inflight.smaller_timeout < now)
+ inflight_functions_garbage_collect(parser, now);
+
+ dictionary_write_unlock(parser->inflight.functions);
+
+ struct timespec tp;
+ clock_gettime(CLOCK_REALTIME, &tp);
+ tp.tv_sec += (time_t)VIRT_FNC_TIMEOUT;
+
+ pthread_mutex_lock(&cond.lock);
+
+ int ret = pthread_cond_timedwait(&cond.cond, &cond.lock, &tp);
+ if (ret == ETIMEDOUT)
+ netdata_log_error("PLUGINSD: DYNCFG virtual function %s timed out", name);
+
+ pthread_mutex_unlock(&cond.lock);
+
+ dyncfg_config_t cfg;
+ cfg.data = strdupz(buffer_tostring(wb));
+ cfg.data_size = buffer_strlen(wb);
+
+ if (rc != NULL)
+ *rc = cond.rc;
+
+ buffer_free(wb);
+ return cfg;
+}
+
+static dyncfg_config_t get_plugin_config_cb(void *usr_ctx)
+{
+ PARSER *parser = usr_ctx;
+ return call_virtual_function_blocking(parser, "get_plugin_config", NULL, NULL);
+}
+
+static dyncfg_config_t get_plugin_config_schema_cb(void *usr_ctx)
+{
+ PARSER *parser = usr_ctx;
+ return call_virtual_function_blocking(parser, "get_plugin_config_schema", NULL, NULL);
+}
+
+static dyncfg_config_t get_module_config_cb(void *usr_ctx, const char *module_name)
+{
+ PARSER *parser = usr_ctx;
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "get_module_config %s", module_name);
+ return call_virtual_function_blocking(parser, buf, NULL, NULL);
+}
+
+static dyncfg_config_t get_module_config_schema_cb(void *usr_ctx, const char *module_name)
+{
+ PARSER *parser = usr_ctx;
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "get_module_config_schema %s", module_name);
+ return call_virtual_function_blocking(parser, buf, NULL, NULL);
+}
+
+static dyncfg_config_t get_job_config_schema_cb(void *usr_ctx, const char *module_name)
+{
+ PARSER *parser = usr_ctx;
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "get_job_config_schema %s", module_name);
+ return call_virtual_function_blocking(parser, buf, NULL, NULL);
+}
+
+static dyncfg_config_t get_job_config_cb(void *usr_ctx, const char *module_name, const char* job_name)
+{
+ PARSER *parser = usr_ctx;
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "get_job_config %s %s", module_name, job_name);
+ return call_virtual_function_blocking(parser, buf, NULL, NULL);
+}
+
+enum set_config_result set_plugin_config_cb(void *usr_ctx, dyncfg_config_t *cfg)
+{
+ PARSER *parser = usr_ctx;
+ int rc;
+ call_virtual_function_blocking(parser, "set_plugin_config", &rc, cfg->data);
+ if(rc != 1)
+ return SET_CONFIG_REJECTED;
+ return SET_CONFIG_ACCEPTED;
+}
+
+enum set_config_result set_module_config_cb(void *usr_ctx, const char *module_name, dyncfg_config_t *cfg)
+{
+ PARSER *parser = usr_ctx;
+ int rc;
+
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "set_module_config %s", module_name);
+ call_virtual_function_blocking(parser, buf, &rc, cfg->data);
+
+ if(rc != 1)
+ return SET_CONFIG_REJECTED;
+ return SET_CONFIG_ACCEPTED;
+}
+
+enum set_config_result set_job_config_cb(void *usr_ctx, const char *module_name, const char *job_name, dyncfg_config_t *cfg)
+{
+ PARSER *parser = usr_ctx;
+ int rc;
+
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "set_job_config %s %s", module_name, job_name);
+ call_virtual_function_blocking(parser, buf, &rc, cfg->data);
+
+ if(rc != 1)
+ return SET_CONFIG_REJECTED;
+ return SET_CONFIG_ACCEPTED;
+}
+
+enum set_config_result delete_job_cb(void *usr_ctx, const char *module_name, const char *job_name)
+{
+ PARSER *parser = usr_ctx;
+ int rc;
+
+ char buf[1024];
+ snprintfz(buf, sizeof(buf), "delete_job %s %s", module_name, job_name);
+ call_virtual_function_blocking(parser, buf, &rc, NULL);
+
+ if(rc != 1)
+ return SET_CONFIG_REJECTED;
+ return SET_CONFIG_ACCEPTED;
+}
+
+
+static inline PARSER_RC pluginsd_register_plugin(char **words __maybe_unused, size_t num_words __maybe_unused, PARSER *parser __maybe_unused) {
+ netdata_log_info("PLUGINSD: DYNCFG_ENABLE");
+
+ if (unlikely (num_words != 2))
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DYNCFG_ENABLE, "missing name parameter");
+
+ struct configurable_plugin *cfg = callocz(1, sizeof(struct configurable_plugin));
+
+ cfg->name = strdupz(words[1]);
+ cfg->set_config_cb = set_plugin_config_cb;
+ cfg->get_config_cb = get_plugin_config_cb;
+ cfg->get_config_schema_cb = get_plugin_config_schema_cb;
+ cfg->cb_usr_ctx = parser;
+
+ parser->user.cd->cfg_dict_item = register_plugin(cfg);
+
+ if (unlikely(parser->user.cd->cfg_dict_item == NULL)) {
+ freez(cfg->name);
+ freez(cfg);
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DYNCFG_ENABLE, "error registering plugin");
+ }
+
+ parser->user.cd->configuration = cfg;
+ return PARSER_RC_OK;
+}
+
+static inline PARSER_RC pluginsd_register_module(char **words __maybe_unused, size_t num_words __maybe_unused, PARSER *parser __maybe_unused) {
+ netdata_log_info("PLUGINSD: DYNCFG_REG_MODULE");
+
+ struct configurable_plugin *plug_cfg = parser->user.cd->configuration;
+ if (unlikely(plug_cfg == NULL))
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DYNCFG_REGISTER_MODULE, "you have to enable dynamic configuration first using " PLUGINSD_KEYWORD_DYNCFG_ENABLE);
+
+ if (unlikely(num_words != 3))
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DYNCFG_REGISTER_MODULE, "expected 2 parameters module_name followed by module_type");
+
+ struct module *mod = callocz(1, sizeof(struct module));
+
+ mod->type = str2_module_type(words[2]);
+ if (unlikely(mod->type == MOD_TYPE_UNKNOWN)) {
+ freez(mod);
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_DYNCFG_REGISTER_MODULE, "unknown module type (allowed: job_array, single)");
+ }
+
+ mod->name = strdupz(words[1]);
+
+ mod->set_config_cb = set_module_config_cb;
+ mod->get_config_cb = get_module_config_cb;
+ mod->get_config_schema_cb = get_module_config_schema_cb;
+ mod->config_cb_usr_ctx = parser;
+
+ mod->get_job_config_cb = get_job_config_cb;
+ mod->get_job_config_schema_cb = get_job_config_schema_cb;
+ mod->set_job_config_cb = set_job_config_cb;
+ mod->delete_job_cb = delete_job_cb;
+ mod->job_config_cb_usr_ctx = parser;
+
+ register_module(plug_cfg, mod);
+ return PARSER_RC_OK;
+}
+
+// job_status
+static inline PARSER_RC pluginsd_job_status(char **words, size_t num_words, PARSER *parser)
+{
+ if (unlikely(num_words != 6 && num_words != 5))
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_REPORT_JOB_STATUS, "expected 4 or 5 parameters: module_name, job_name, status_code, state, [optional: message]");
+
+ int state = atoi(words[4]);
+
+ enum job_status job_status = str2job_state(words[3]);
+ if (unlikely(job_status == JOB_STATUS_UNKNOWN))
+ return PLUGINSD_DISABLE_PLUGIN(parser, PLUGINSD_KEYWORD_REPORT_JOB_STATUS, "unknown job state");
+
+ char *message = NULL;
+ if (num_words == 6)
+ message = strdupz(words[5]);
+
+ report_job_status(parser->user.cd->configuration, words[1], words[2], job_status, state, message);
+ return PARSER_RC_OK;
+}
+
static inline PARSER_RC streaming_claimed_id(char **words, size_t num_words, PARSER *parser)
{
const char *host_uuid_str = get_word(words, num_words, 1);
@@ -2111,6 +2391,12 @@ PARSER_RC parser_execute(PARSER *parser, PARSER_KEYWORD *keyword, char **words,
case 99:
return pluginsd_exit(words, num_words, parser);
+ case 101:
+ return pluginsd_register_plugin(words, num_words, parser);
+
+ case 102:
+ return pluginsd_register_module(words, num_words, parser);
+
default:
fatal("Unknown keyword '%s' with id %zu", keyword->keyword, keyword->id);
}
@@ -2131,6 +2417,11 @@ void parser_destroy(PARSER *parser) {
if (unlikely(!parser))
return;
+ if (parser->user.cd != NULL && parser->user.cd->configuration != NULL) {
+ unregister_plugin(parser->user.cd->cfg_dict_item);
+ parser->user.cd->configuration = NULL;
+ }
+
dictionary_destroy(parser->inflight.functions);
freez(parser);
}
diff --git a/collectors/proc.plugin/README.md b/collectors/proc.plugin/README.md
index 6c1335a70..16ae6f412 100644
--- a/collectors/proc.plugin/README.md
+++ b/collectors/proc.plugin/README.md
@@ -31,6 +31,7 @@ In detail, it collects metrics from:
- `/proc/spl/kstat/zfs/pool/state` (state of ZFS pools)
- `/sys/class/power_supply` (power supply properties)
- `/sys/class/infiniband` (infiniband interconnect)
+- `/sys/class/drm` (AMD GPUs)
- `ipc` (IPC semaphores and message queues)
- `ksm` Kernel Same-Page Merging performance (several files under `/sys/kernel/mm/ksm`).
- `netdata` (internal Netdata resources utilization)
@@ -579,6 +580,36 @@ Default configuration will monitor only enabled infiniband ports, and refresh ne
# refresh ports state every seconds = 30
```
+## AMD GPUs
+
+This module monitors every AMD GPU card discovered at agent startup.
+
+### Monitored GPU metrics
+
+The following charts will be provided:
+
+- **GPU utilization**
+- **GPU memory utilization**
+- **GPU clock frequency**
+- **GPU memory clock frequency**
+- **VRAM memory usage percentage**
+- **VRAM memory usage**
+- **visible VRAM memory usage percentage**
+- **visible VRAM memory usage**
+- **GTT memory usage percentage**
+- **GTT memory usage**
+
+### configuration
+
+The `drm` path can be configured if it differs from the default:
+
+```
+[plugin:proc:/sys/class/drm]
+ # directory to monitor = /sys/class/drm
+```
+
+> [!NOTE]
+> Temperature, fan speed, voltage and power metrics for AMD GPUs can be monitored using the [Sensors](https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/sensors/README.md) plugin.
## IPC
diff --git a/collectors/proc.plugin/metadata.yaml b/collectors/proc.plugin/metadata.yaml
new file mode 100644
index 000000000..81d83f50e
--- /dev/null
+++ b/collectors/proc.plugin/metadata.yaml
@@ -0,0 +1,5317 @@
+plugin_name: proc.plugin
+modules:
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/stat
+ monitored_instance:
+ name: System statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.system-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - cpu utilization
+ - process counts
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ CPU utilization, states and frequencies and key Linux system performance metrics.
+
+ The `/proc/stat` file provides various types of system statistics:
+
+ - The overall system CPU usage statistics
+ - Per CPU core statistics
+ - The total context switching of the system
+ - The total number of processes running
+ - The total CPU interrupts
+ - The total CPU softirqs
+
+ The collector also reads:
+
+ - `/proc/schedstat` for statistics about the process scheduler in the Linux kernel.
+ - `/sys/devices/system/cpu/[X]/thermal_throttle/core_throttle_count` to get the count of thermal throttling events for a specific CPU core on Linux systems.
+ - `/sys/devices/system/cpu/[X]/thermal_throttle/package_throttle_count` to get the count of thermal throttling events for a specific CPU package on a Linux system.
+ - `/sys/devices/system/cpu/[X]/cpufreq/scaling_cur_freq` to get the current operating frequency of a specific CPU core.
+ - `/sys/devices/system/cpu/[X]/cpufreq/stats/time_in_state` to get the amount of time the CPU has spent in each of its available frequency states.
+ - `/sys/devices/system/cpu/[X]/cpuidle/state[X]/name` to get the names of the idle states for each CPU core in a Linux system.
+ - `/sys/devices/system/cpu/[X]/cpuidle/state[X]/time` to get the total time each specific CPU core has spent in each idle state since the system was started.
+ method_description: ""
+ supported_platforms:
+ include: ["linux"]
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: |
+ The collector auto-detects all metrics. No configuration is needed.
+ limits:
+ description: ""
+ performance_impact:
+ description: |
+ The collector disables cpu frequency and idle state monitoring when there are more than 128 CPU cores available.
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ section_name: "plugin:proc:/proc/stat"
+ name: "netdata.conf"
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 10min_cpu_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
+ os: "linux"
+ - name: 10min_cpu_iowait
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU iowait time over the last 10 minutes
+ os: "linux"
+ - name: 20min_steal_cpu
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
+ metric: system.cpu
+ info: average CPU steal time over the last 20 minutes
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.cpu
+ description: Total CPU utilization
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: guest_nice
+ - name: guest
+ - name: steal
+ - name: softirq
+ - name: irq
+ - name: user
+ - name: system
+ - name: nice
+ - name: iowait
+ - name: idle
+ - name: system.intr
+ description: CPU Interrupts
+ unit: "interrupts/s"
+ chart_type: line
+ dimensions:
+ - name: interrupts
+ - name: system.ctxt
+ description: CPU Context Switches
+ unit: "context switches/s"
+ chart_type: line
+ dimensions:
+ - name: switches
+ - name: system.forks
+ description: Started Processes
+ unit: "processes/s"
+ chart_type: line
+ dimensions:
+ - name: started
+ - name: system.processes
+ description: System Processes
+ unit: "processes"
+ chart_type: line
+ dimensions:
+ - name: running
+ - name: blocked
+ - name: cpu.core_throttling
+ description: Core Thermal Throttling Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per cpu core
+ - name: cpu.package_throttling
+ description: Package Thermal Throttling Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per package
+ - name: cpu.cpufreq
+ description: Current CPU Frequency
+ unit: "MHz"
+ chart_type: line
+ dimensions:
+ - name: a dimension per cpu core
+ - name: cpu core
+ description: ""
+ labels:
+ - name: cpu
+ description: TBD
+ metrics:
+ - name: cpu.cpu
+ description: Core utilization
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: guest_nice
+ - name: guest
+ - name: steal
+ - name: softirq
+ - name: irq
+ - name: user
+ - name: system
+ - name: nice
+ - name: iowait
+ - name: idle
+ - name: cpuidle.cpu_cstate_residency_time
+ description: C-state residency time
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per c-state
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/sys/kernel/random/entropy_avail
+ monitored_instance:
+ name: Entropy
+ link: ""
+ categories:
+ - data-collection.linux-systems.system-metrics
+ icon_filename: "syslog.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - entropy
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Entropy, a measure of the randomness or unpredictability of data.
+
+ In the context of cryptography, entropy is used to generate random numbers or keys that are essential for
+ secure communication and encryption. Without a good source of entropy, cryptographic protocols can become
+ vulnerable to attacks that exploit the predictability of the generated keys.
+
+ In most operating systems, entropy is generated by collecting random events from various sources, such as
+ hardware interrupts, mouse movements, keyboard presses, and disk activity. These events are fed into a pool
+ of entropy, which is then used to generate random numbers when needed.
+
+ The `/dev/random` device in Linux is one such source of entropy, and it provides an interface for programs
+ to access the pool of entropy. When a program requests random numbers, it reads from the `/dev/random` device,
+ which blocks until enough entropy is available to generate the requested numbers. This ensures that the
+ generated numbers are truly random and not predictable.
+
+ However, if the pool of entropy gets depleted, the `/dev/random` device may block indefinitely, causing
+ programs that rely on random numbers to slow down or even freeze. This is especially problematic for
+ cryptographic protocols that require a continuous stream of random numbers, such as SSL/TLS and SSH.
+
+ To avoid this issue, some systems use a hardware random number generator (RNG) to generate high-quality
+ entropy. A hardware RNG generates random numbers by measuring physical phenomena, such as thermal noise or
+ radioactive decay. These sources of randomness are considered to be more reliable and unpredictable than
+ software-based sources.
+
+ One such hardware RNG is the Trusted Platform Module (TPM), which is a dedicated hardware chip that is used
+ for cryptographic operations and secure boot. The TPM contains a built-in hardware RNG that generates
+ high-quality entropy, which can be used to seed the pool of entropy in the operating system.
+
+ Alternatively, software-based solutions such as `Haveged` can be used to generate additional entropy by
+ exploiting sources of randomness in the system, such as CPU utilization and network traffic. These solutions
+ can help to mitigate the risk of entropy depletion, but they may not be as reliable as hardware-based solutions.
+ method_description: ""
+ supported_platforms:
+ include: ["linux"]
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: lowest_entropy
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/entropy.conf
+ metric: system.entropy
+ info: minimum number of bits of entropy available for the kernel’s random number generator
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.entropy
+ description: Available Entropy
+ unit: "entropy"
+ chart_type: line
+ dimensions:
+ - name: entropy
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/uptime
+ monitored_instance:
+ name: System Uptime
+ link: ""
+ categories:
+ - data-collection.linux-systems.system-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - uptime
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ The amount of time the system has been up (running).
+
+ Uptime is a critical aspect of overall system performance:
+
+ - **Availability**: Uptime monitoring can show whether a server is consistently available or experiences frequent downtimes.
+ - **Performance Monitoring**: While server uptime alone doesn't provide detailed performance data, analyzing the duration and frequency of downtimes can help identify patterns or trends.
+ - **Proactive problem detection**: If server uptime monitoring reveals unexpected downtimes or a decreasing uptime trend, it can serve as an early warning sign of potential problems.
+ - **Root cause analysis**: When investigating server downtime, the uptime metric alone may not provide enough information to pinpoint the exact cause.
+ - **Load balancing**: Uptime data can indirectly indicate load balancing issues if certain servers have significantly lower uptimes than others.
+ - **Optimize maintenance efforts**: Servers with consistently low uptimes or frequent downtimes may require more attention.
+ - **Compliance requirements**: Server uptime data can be used to demonstrate compliance with regulatory requirements or SLAs that mandate a minimum level of server availability.
+ method_description: ""
+ supported_platforms:
+ include: ["linux"]
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.uptime
+ description: System Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/vmstat
+ monitored_instance:
+ name: Memory Statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - swap
+ - page faults
+ - oom
+ - numa
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Linux Virtual memory subsystem.
+
+ Information about memory management, indicating how effectively the kernel allocates and frees
+ memory resources in response to system demands.
+
+ Monitors page faults, which occur when a process requests a portion of its memory that isn't
+ immediately available. Monitoring these events can help diagnose inefficiencies in memory management and
+ provide insights into application behavior.
+
+ Tracks swapping activity — a vital aspect of memory management where the kernel moves data from RAM to
+ swap space, and vice versa, based on memory demand and usage. It also monitors the utilization of zswap,
+ a compressed cache for swap pages, and provides insights into its usage and performance implications.
+
+ In the context of virtualized environments, it tracks the ballooning mechanism which is used to balance
+ memory resources between host and guest systems.
+
+ For systems using NUMA architecture, it provides insights into the local and remote memory accesses, which
+ can impact the performance based on the memory access times.
+
+ The collector also watches for 'Out of Memory' kills, a drastic measure taken by the system when it runs out
+ of memory resources.
+ method_description: ""
+ supported_platforms:
+ include: ["linux"]
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 30min_ram_swapped_out
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
+ metric: mem.swapio
+ info: percentage of the system RAM swapped in the last 30 minutes
+ os: "linux freebsd"
+ - name: oom_kill
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: mem.oom_kill
+ info: number of out of memory kills in the last 30 minutes
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: mem.swapio
+ description: Swap I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: system.pgpgio
+ description: Memory Paged from/to disk
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: system.pgfaults
+ description: Memory Page Faults
+ unit: "faults/s"
+ chart_type: line
+ dimensions:
+ - name: minor
+ - name: major
+ - name: mem.balloon
+ description: Memory Ballooning Operations
+ unit: "KiB/s"
+ chart_type: line
+ dimensions:
+ - name: inflate
+ - name: deflate
+ - name: migrate
+ - name: mem.zswapio
+ description: ZSwap I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: mem.ksm_cow
+ description: KSM Copy On Write Operations
+ unit: "KiB/s"
+ chart_type: line
+ dimensions:
+ - name: swapin
+ - name: write
+ - name: mem.thp_faults
+ description: Transparent Huge Page Fault Allocations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: fallback
+ - name: fallback_charge
+ - name: mem.thp_file
+ description: Transparent Huge Page File Allocations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: fallback
+ - name: mapped
+ - name: fallback_charge
+ - name: mem.thp_zero
+ description: Transparent Huge Zero Page Allocations
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: failed
+ - name: mem.thp_collapse
+ description: Transparent Huge Pages Collapsed by khugepaged
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: failed
+ - name: mem.thp_split
+ description: Transparent Huge Page Splits
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: split
+ - name: failed
+ - name: split_pmd
+ - name: split_deferred
+ - name: mem.thp_swapout
+ description: Transparent Huge Pages Swap Out
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: swapout
+ - name: fallback
+ - name: mem.thp_compact
+ description: Transparent Huge Pages Compaction
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: success
+ - name: fail
+ - name: stall
+ - name: mem.oom_kill
+ description: Out of Memory Kills
+ unit: "kills/s"
+ chart_type: line
+ dimensions:
+ - name: kills
+ - name: mem.numa
+ description: NUMA events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: local
+ - name: foreign
+ - name: interleave
+ - name: other
+ - name: pte_updates
+ - name: huge_pte_updates
+ - name: hint_faults
+ - name: hint_faults_local
+ - name: pages_migrated
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/interrupts
+ monitored_instance:
+ name: Interrupts
+ link: ""
+ categories:
+ - data-collection.linux-systems.cpu-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - interrupts
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Monitors `/proc/interrupts`, a file organized by CPU and then by the type of interrupt.
+ The numbers reported are the counts of the interrupts that have occurred of each type.
+
+ An interrupt is a signal to the processor emitted by hardware or software indicating an event that needs
+ immediate attention. The processor then interrupts its current activities and executes the interrupt handler
+ to deal with the event. This is part of the way a computer multitasks and handles concurrent processing.
+
+ The types of interrupts include:
+
+ - **I/O interrupts**: These are caused by I/O devices like the keyboard, mouse, printer, etc. For example, when
+ you type something on the keyboard, an interrupt is triggered so the processor can handle the new input.
+
+ - **Timer interrupts**: These are generated at regular intervals by the system's timer circuit. It's primarily
+ used to switch the CPU among different tasks.
+
+ - **Software interrupts**: These are generated by a program requiring disk I/O operations, or other system resources.
+
+ - **Hardware interrupts**: These are caused by hardware conditions such as power failure, overheating, etc.
+
+ Monitoring `/proc/interrupts` can be used for:
+
+ - **Performance tuning**: If an interrupt is happening very frequently, it could be a sign that a device is not
+ configured correctly, or there is a software bug causing unnecessary interrupts. This could lead to system
+ performance degradation.
+
+ - **System troubleshooting**: If you're seeing a lot of unexpected interrupts, it could be a sign of a hardware problem.
+
+ - **Understanding system behavior**: More generally, keeping an eye on what interrupts are occurring can help you
+ understand what your system is doing. It can provide insights into the system's interaction with hardware,
+ drivers, and other parts of the kernel.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.interrupts
+ description: System interrupts
+ unit: "interrupts/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per device
+ - name: cpu core
+ description: ""
+ labels:
+ - name: cpu
+ description: TBD
+ metrics:
+ - name: cpu.interrupts
+ description: CPU interrupts
+ unit: "interrupts/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per device
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/loadavg
+ monitored_instance:
+ name: System Load Average
+ link: ""
+ categories:
+ - data-collection.linux-systems.system-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - load
+ - load average
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ The `/proc/loadavg` file provides information about the system load average.
+
+ The load average is a measure of the amount of computational work that a system performs. It is a
+ representation of the average system load over a period of time.
+
+ This file contains three numbers representing the system load averages for the last 1, 5, and 15 minutes,
+ respectively. It also includes the currently running processes and the total number of processes.
+
+ Monitoring the load average can be used for:
+
+ - **System performance**: If the load average is too high, it may indicate that your system is overloaded.
+ On a system with a single CPU, if the load average is 1, it means the single CPU is fully utilized. If the
+ load averages are consistently higher than the number of CPUs/cores, it may indicate that your system is
+ overloaded and tasks are waiting for CPU time.
+
+ - **Troubleshooting**: If the load average is unexpectedly high, it can be a sign of a problem. This could be
+ due to a runaway process, a software bug, or a hardware issue.
+
+ - **Capacity planning**: By monitoring the load average over time, you can understand the trends in your
+ system's workload. This can help with capacity planning and scaling decisions.
+
+ Remember that load average not only considers CPU usage, but also includes processes waiting for disk I/O.
+ Therefore, high load averages could be due to I/O contention as well as CPU contention.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: load_cpu_number
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: number of active CPU cores in the system
+ os: "linux"
+ - name: load_average_15
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system fifteen-minute load average
+ os: "linux"
+ - name: load_average_5
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system five-minute load average
+ os: "linux"
+ - name: load_average_1
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
+ metric: system.load
+ info: system one-minute load average
+ os: "linux"
+ - name: active_processes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf
+ metric: system.active_processes
+ info: system process IDs (PID) space utilization
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.load
+ description: System Load Average
+ unit: "load"
+ chart_type: line
+ dimensions:
+ - name: load1
+ - name: load5
+ - name: load15
+ - name: system.active_processes
+ description: System Active Processes
+ unit: "processes"
+ chart_type: line
+ dimensions:
+ - name: active
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/pressure
+ monitored_instance:
+ name: Pressure Stall Information
+ link: ""
+ categories:
+ - data-collection.linux-systems.pressure-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - pressure
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Introduced in Linux kernel 4.20, `/proc/pressure` provides information about system pressure stall information
+ (PSI). PSI is a feature that allows the system to track the amount of time the system is stalled due to
+ resource contention, such as CPU, memory, or I/O.
+
+ The collectors monitored 3 separate files for CPU, memory, and I/O:
+
+ - **cpu**: Tracks the amount of time tasks are stalled due to CPU contention.
+ - **memory**: Tracks the amount of time tasks are stalled due to memory contention.
+ - **io**: Tracks the amount of time tasks are stalled due to I/O contention.
+ - **irq**: Tracks the amount of time tasks are stalled due to IRQ contention.
+
+ Each of them provides metrics for stall time over the last 10 seconds, 1 minute, 5 minutes, and 15 minutes.
+
+ Monitoring the /proc/pressure files can provide important insights into system performance and capacity planning:
+
+ - **Identifying resource contention**: If these metrics are consistently high, it indicates that tasks are
+ frequently being stalled due to lack of resources, which can significantly degrade system performance.
+
+ - **Troubleshooting performance issues**: If a system is experiencing performance issues, these metrics can
+ help identify whether resource contention is the cause.
+
+ - **Capacity planning**: By monitoring these metrics over time, you can understand trends in resource
+ utilization and make informed decisions about when to add more resources to your system.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.cpu_some_pressure
+ description: CPU some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.cpu_some_pressure_stall_time
+ description: CPU some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: system.cpu_full_pressure
+ description: CPU full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.cpu_full_pressure_stall_time
+ description: CPU full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: system.memory_some_pressure
+ description: Memory some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.memory_some_pressure_stall_time
+ description: Memory some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: system.memory_full_pressure
+ description: Memory full pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.memory_full_pressure_stall_time
+ description: Memory full pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: system.io_some_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.io_some_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: system.io_full_pressure
+ description: I/O some pressure
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: some10
+ - name: some60
+ - name: some300
+ - name: system.io_full_pressure_stall_time
+ description: I/O some pressure stall time
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: time
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/softirqs
+ monitored_instance:
+ name: SoftIRQ statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.cpu-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - softirqs
+ - interrupts
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ In the Linux kernel, handling of hardware interrupts is split into two halves: the top half and the bottom half.
+ The top half is the routine that responds immediately to an interrupt, while the bottom half is deferred to be processed later.
+
+ Softirqs are a mechanism in the Linux kernel used to handle the bottom halves of interrupts, which can be
+ deferred and processed later in a context where it's safe to enable interrupts.
+
+ The actual work of handling the interrupt is offloaded to a softirq and executed later when the system
+ decides it's a good time to process them. This helps to keep the system responsive by not blocking the top
+ half for too long, which could lead to missed interrupts.
+
+ Monitoring `/proc/softirqs` is useful for:
+
+ - **Performance tuning**: A high rate of softirqs could indicate a performance issue. For instance, a high
+ rate of network softirqs (`NET_RX` and `NET_TX`) could indicate a network performance issue.
+
+ - **Troubleshooting**: If a system is behaving unexpectedly, checking the softirqs could provide clues about
+ what is going on. For example, a sudden increase in block device softirqs (BLOCK) might indicate a problem
+ with a disk.
+
+ - **Understanding system behavior**: Knowing what types of softirqs are happening can help you understand what
+ your system is doing, particularly in terms of how it's interacting with hardware and how it's handling
+ interrupts.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.softirqs
+ description: System softirqs
+ unit: "softirqs/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per softirq
+ - name: cpu core
+ description: ""
+ labels:
+ - name: cpu
+ description: TBD
+ metrics:
+ - name: cpu.softirqs
+ description: CPU softirqs
+ unit: "softirqs/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per softirq
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/softnet_stat
+ monitored_instance:
+ name: Softnet Statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - softnet
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ `/proc/net/softnet_stat` provides statistics that relate to the handling of network packets by softirq.
+
+ It provides information about:
+
+ - Total number of processed packets (`processed`).
+ - Times ksoftirq ran out of quota (`dropped`).
+ - Times net_rx_action was rescheduled.
+ - Number of times processed all lists before quota.
+ - Number of times did not process all lists due to quota.
+ - Number of times net_rx_action was rescheduled for GRO (Generic Receive Offload) cells.
+ - Number of times GRO cells were processed.
+
+ Monitoring the /proc/net/softnet_stat file can be useful for:
+
+ - **Network performance monitoring**: By tracking the total number of processed packets and how many packets
+ were dropped, you can gain insights into your system's network performance.
+
+ - **Troubleshooting**: If you're experiencing network-related issues, this collector can provide valuable clues.
+ For instance, a high number of dropped packets may indicate a network problem.
+
+ - **Capacity planning**: If your system is consistently processing near its maximum capacity of network
+ packets, it might be time to consider upgrading your network infrastructure.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 1min_netdev_backlog_exceeded
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
+ metric: system.softnet_stat
+ info: average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog
+ os: "linux"
+ - name: 1min_netdev_budget_ran_outs
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
+ metric: system.softnet_stat
+ info:
+ average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last
+ minute (this can be a cause for dropped packets)
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.softnet_stat
+ description: System softnet_stat
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: processed
+ - name: dropped
+ - name: squeezed
+ - name: received_rps
+ - name: flow_limit_count
+ - name: cpu core
+ description: ""
+ labels: []
+ metrics:
+ - name: cpu.softnet_stat
+ description: CPU softnet_stat
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: processed
+ - name: dropped
+ - name: squeezed
+ - name: received_rps
+ - name: flow_limit_count
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/meminfo
+ monitored_instance:
+ name: Memory Usage
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - memory
+ - ram
+ - available
+ - committed
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ `/proc/meminfo` provides detailed information about the system's current memory usage. It includes information
+ about different types of memory, RAM, Swap, ZSwap, HugePages, Transparent HugePages (THP), Kernel memory,
+ SLAB memory, memory mappings, and more.
+
+ Monitoring /proc/meminfo can be useful for:
+
+ - **Performance Tuning**: Understanding your system's memory usage can help you make decisions about system
+ tuning and optimization. For example, if your system is frequently low on free memory, it might benefit
+ from more RAM.
+
+ - **Troubleshooting**: If your system is experiencing problems, `/proc/meminfo` can provide clues about
+ whether memory usage is a factor. For example, if your system is slow and cached swap is high, it could
+ mean that your system is swapping out a lot of memory to disk, which can degrade performance.
+
+ - **Capacity Planning**: By monitoring memory usage over time, you can understand trends and make informed
+ decisions about future capacity needs.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ram_in_use
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: system.ram
+ info: system memory utilization
+ os: "linux"
+ - name: ram_available
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
+ metric: mem.available
+ info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
+ os: "linux"
+ - name: used_swap
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
+ metric: mem.swap
+ info: swap memory utilization
+ os: "linux freebsd"
+ - name: 1hour_memory_hw_corrupted
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
+ metric: mem.hwcorrupt
+ info: amount of memory corrupted due to a hardware failure
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.ram
+ description: System RAM
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: cached
+ - name: buffers
+ - name: mem.available
+ description: Available RAM for applications
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: avail
+ - name: mem.swap
+ description: System Swap
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: mem.swap_cached
+ description: Swap Memory Cached in RAM
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: cached
+ - name: mem.zswap
+ description: Zswap Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: in-ram
+ - name: on-disk
+ - name: mem.hwcorrupt
+ description: Corrupted Memory detected by ECC
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: HardwareCorrupted
+ - name: mem.commited
+ description: Committed (Allocated) Memory
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: Commited_AS
+ - name: mem.writeback
+ description: Writeback Memory
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: Dirty
+ - name: Writeback
+ - name: FuseWriteback
+ - name: NfsWriteback
+ - name: Bounce
+ - name: mem.kernel
+ description: Memory Used by Kernel
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: Slab
+ - name: KernelStack
+ - name: PageTables
+ - name: VmallocUsed
+ - name: Percpu
+ - name: mem.slab
+ description: Reclaimable Kernel Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: reclaimable
+ - name: unreclaimable
+ - name: mem.hugepages
+ description: Dedicated HugePages Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: surplus
+ - name: reserved
+ - name: mem.thp
+ description: Transparent HugePages Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: anonymous
+ - name: shmem
+ - name: mem.thp_details
+ description: Details of Transparent HugePages Usage
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: ShmemPmdMapped
+ - name: FileHugePages
+ - name: FilePmdMapped
+ - name: mem.reclaiming
+ description: Memory Reclaiming
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: Active
+ - name: Inactive
+ - name: Active(anon)
+ - name: Inactive(anon)
+ - name: Active(file)
+ - name: Inactive(file)
+ - name: Unevictable
+ - name: Mlocked
+ - name: mem.high_low
+ description: High and Low Used and Free Memory Areas
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: high_used
+ - name: low_used
+ - name: high_free
+ - name: low_free
+ - name: mem.cma
+ description: Contiguous Memory Allocator (CMA) Memory
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: used
+ - name: free
+ - name: mem.directmaps
+ description: Direct Memory Mappings
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: 4k
+ - name: 2m
+ - name: 4m
+ - name: 1g
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/pagetypeinfo
+ monitored_instance:
+ name: Page types
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - memory page types
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides metrics about the system's memory page types"
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: mem.pagetype_global
+ description: System orders available
+ unit: "B"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per pagesize
+ - name: node, zone, type
+ description: ""
+ labels:
+ - name: node_id
+ description: TBD
+ - name: node_zone
+ description: TBD
+ - name: node_type
+ description: TBD
+ metrics:
+ - name: mem.pagetype
+ description: pagetype_Node{node}_{zone}_{type}
+ unit: "B"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per pagesize
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/devices/system/edac/mc
+ monitored_instance:
+ name: Memory modules (DIMMs)
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - edac
+ - ecc
+ - dimm
+ - ram
+ - hardware
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ The Error Detection and Correction (EDAC) subsystem is detecting and reporting errors in the system's memory,
+ primarily ECC (Error-Correcting Code) memory errors.
+
+ The collector provides data for:
+
+ - Per memory controller (MC): correctable and uncorrectable errors. These can be of 2 kinds:
+ - errors related to a DIMM
+ - errors that cannot be associated with a DIMM
+
+ - Per memory DIMM: correctable and uncorrectable errors. There are 2 kinds:
+ - memory controllers that can identify the physical DIMMS and report errors directly for them,
+ - memory controllers that report errors for memory address ranges that can be linked to dimms.
+ In this case the DIMMS reported may be more than the physical DIMMS installed.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ecc_memory_mc_noinfo_correctable
+ metric: mem.edac_mc
+ info: memory controller ${label:controller} ECC correctable errors (unknown DIMM slot) in the last 10 minutes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
+ - name: ecc_memory_mc_noinfo_uncorrectable
+ metric: mem.edac_mc
+ info: memory controller ${label:controller} ECC uncorrectable errors (unknown DIMM slot) in the last 10 minutes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
+ - name: ecc_memory_dimm_correctable
+ metric: mem.edac_mc_dimm
+ info: DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC correctable errors in the last 10 minutes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
+ - name: ecc_memory_dimm_uncorrectable
+ metric: mem.edac_mc_dimm
+ info: DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC uncorrectable errors in the last 10 minutes
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: memory controller
+ description: These metrics refer to the memory controller.
+ labels:
+ - name: controller
+ description: "[mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller."
+ - name: mc_name
+ description: Memory controller type.
+ - name: size_mb
+ description: The amount of memory in megabytes that this memory controller manages.
+ - name: max_location
+ description: Last available memory slot in this memory controller.
+ metrics:
+ - name: mem.edac_mc
+ description: Memory Controller (MC) Error Detection And Correction (EDAC) Errors
+ unit: errors/s
+ chart_type: line
+ dimensions:
+ - name: correctable
+ - name: uncorrectable
+ - name: correctable_noinfo
+ - name: uncorrectable_noinfo
+ - name: memory module
+ description: These metrics refer to the memory module (or rank, [depends on the memory controller](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#f5)).
+ labels:
+ - name: controller
+ description: "[mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller."
+ - name: dimm
+ description: "[dimmX or rankX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#dimmx-or-rankx-directories) directory name of this memory module."
+ - name: dimm_dev_type
+ description: Type of DRAM device used in this memory module. For example, x1, x2, x4, x8.
+ - name: dimm_edac_mode
+ description: Used type of error detection and correction. For example, S4ECD4ED would mean a Chipkill with x4 DRAM.
+ - name: dimm_label
+ description: Label assigned to this memory module.
+ - name: dimm_location
+ description: Location of the memory module.
+ - name: dimm_mem_type
+ description: Type of the memory module.
+ - name: size
+ description: The amount of memory in megabytes that this memory module manages.
+ metrics:
+ - name: mem.edac_mc
+ description: DIMM Error Detection And Correction (EDAC) Errors
+ unit: errors/s
+ chart_type: line
+ dimensions:
+ - name: correctable
+ - name: uncorrectable
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/devices/system/node
+ monitored_instance:
+ name: Non-Uniform Memory Access
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "linuxserver.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - numa
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Information about NUMA (Non-Uniform Memory Access) nodes on the system.
+
+ NUMA is a method of configuring a cluster of microprocessor in a multiprocessing system so that they can
+ share memory locally, improving performance and the ability of the system to be expanded. NUMA is used in a
+ symmetric multiprocessing (SMP) system.
+
+ In a NUMA system, processors, memory, and I/O devices are grouped together into cells, also known as nodes.
+ Each node has its own memory and set of I/O devices, and one or more processors. While a processor can access
+ memory in any of the nodes, it does so faster when accessing memory within its own node.
+
+ The collector provides statistics on memory allocations for processes running on the NUMA nodes, revealing the
+ efficiency of memory allocations in multi-node systems.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: numa node
+ description: ""
+ labels:
+ - name: numa_node
+ description: TBD
+ metrics:
+ - name: mem.numa_nodes
+ description: NUMA events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: hit
+ - name: miss
+ - name: local
+ - name: foreign
+ - name: interleave
+ - name: other
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/kernel/mm/ksm
+ monitored_instance:
+ name: Kernel Same-Page Merging
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ksm
+ - samepage
+ - merging
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Kernel Samepage Merging (KSM) is a memory-saving feature in Linux that enables the kernel to examine the
+ memory of different processes and identify identical pages. It then merges these identical pages into a
+ single page that the processes share. This is particularly useful for virtualization, where multiple virtual
+ machines might be running the same operating system or applications and have many identical pages.
+
+ The collector provides information about the operation and effectiveness of KSM on your system.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: mem.ksm
+ description: Kernel Same Page Merging
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: shared
+ - name: unshared
+ - name: sharing
+ - name: volatile
+ - name: mem.ksm_savings
+ description: Kernel Same Page Merging Savings
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: savings
+ - name: offered
+ - name: mem.ksm_ratios
+ description: Kernel Same Page Merging Effectiveness
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: savings
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/block/zram
+ monitored_instance:
+ name: ZRAM
+ link: ""
+ categories:
+ - data-collection.linux-systems.memory-metrics
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - zram
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ zRAM, or compressed RAM, is a block device that uses a portion of your system's RAM as a block device.
+ The data written to this block device is compressed and stored in memory.
+
+ The collectors provides information about the operation and the effectiveness of zRAM on your system.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: zram device
+ description: ""
+ labels:
+ - name: device
+ description: TBD
+ metrics:
+ - name: mem.zram_usage
+ description: ZRAM Memory Usage
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: compressed
+ - name: metadata
+ - name: mem.zram_savings
+ description: ZRAM Memory Savings
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: savings
+ - name: original
+ - name: mem.zram_ratio
+ description: ZRAM Compression Ratio (original to compressed)
+ unit: "ratio"
+ chart_type: line
+ dimensions:
+ - name: ratio
+ - name: mem.zram_efficiency
+ description: ZRAM Efficiency
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: percent
+ - meta:
+ plugin_name: proc.plugin
+ module_name: ipc
+ monitored_instance:
+ name: Inter Process Communication
+ link: ""
+ categories:
+ - data-collection.linux-systems.ipc-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ipc
+ - semaphores
+ - shared memory
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ IPC stands for Inter-Process Communication. It is a mechanism which allows processes to communicate with each
+ other and synchronize their actions.
+
+ This collector exposes information about:
+
+ - Message Queues: This allows messages to be exchanged between processes. It's a more flexible method that
+ allows messages to be placed onto a queue and read at a later time.
+
+ - Shared Memory: This method allows for the fastest form of IPC because processes can exchange data by
+ reading/writing into shared memory segments.
+
+ - Semaphores: They are used to synchronize the operations performed by independent processes. So, if multiple
+ processes are trying to access a single shared resource, semaphores can ensure that only one process
+ accesses the resource at a given time.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: semaphores_used
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
+ metric: system.ipc_semaphores
+ info: IPC semaphore utilization
+ os: "linux"
+ - name: semaphore_arrays_used
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
+ metric: system.ipc_semaphore_arrays
+ info: IPC semaphore arrays utilization
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.ipc_semaphores
+ description: IPC Semaphores
+ unit: "semaphores"
+ chart_type: area
+ dimensions:
+ - name: semaphores
+ - name: system.ipc_semaphore_arrays
+ description: IPC Semaphore Arrays
+ unit: "arrays"
+ chart_type: area
+ dimensions:
+ - name: arrays
+ - name: system.message_queue_message
+ description: IPC Message Queue Number of Messages
+ unit: "messages"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per queue
+ - name: system.message_queue_bytes
+ description: IPC Message Queue Used Bytes
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per queue
+ - name: system.shared_memory_segments
+ description: IPC Shared Memory Number of Segments
+ unit: "segments"
+ chart_type: stacked
+ dimensions:
+ - name: segments
+ - name: system.shared_memory_bytes
+ description: IPC Shared Memory Used Bytes
+ unit: "bytes"
+ chart_type: stacked
+ dimensions:
+ - name: bytes
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/diskstats
+ monitored_instance:
+ name: Disk Statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.disk-metrics
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - disk
+ - disks
+ - io
+ - bcache
+ - block devices
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Detailed statistics for each of your system's disk devices and partitions.
+ The data is reported by the kernel and can be used to monitor disk activity on a Linux system.
+
+ Get valuable insight into how your disks are performing and where potential bottlenecks might be.
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 10min_disk_backlog
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.backlog
+ info: average backlog size of the ${label:device} disk over the last 10 minutes
+ os: "linux"
+ - name: 10min_disk_utilization
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
+ metric: disk.util
+ info: average percentage of time ${label:device} disk was busy over the last 10 minutes
+ os: "linux freebsd"
+ - name: bcache_cache_dirty
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf
+ metric: disk.bcache_cache_alloc
+ info: percentage of cache space used for dirty data and metadata (this usually means your SSD cache is too small)
+ - name: bcache_cache_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf
+ metric: disk.bcache_cache_read_races
+ info:
+ number of times data was read from the cache, the bucket was reused and invalidated in the last 10 minutes (when this occurs the data is
+ reread from the backing device)
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.io
+ description: Disk I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: disk
+ description: ""
+ labels:
+ - name: device
+ description: TBD
+ - name: mount_point
+ description: TBD
+ - name: device_type
+ description: TBD
+ metrics:
+ - name: disk.io
+ description: Disk I/O Bandwidth
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.io
+ description: Amount of Discarded Data
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: discards
+ - name: disk.ops
+ description: Disk Completed I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.ops
+ description: Disk Completed Extended I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: discards
+ - name: flushes
+ - name: disk.qops
+ description: Disk Current I/O Operations
+ unit: "operations"
+ chart_type: line
+ dimensions:
+ - name: operations
+ - name: disk.backlog
+ description: Disk Backlog
+ unit: "milliseconds"
+ chart_type: area
+ dimensions:
+ - name: backlog
+ - name: disk.busy
+ description: Disk Busy Time
+ unit: "milliseconds"
+ chart_type: area
+ dimensions:
+ - name: busy
+ - name: disk.util
+ description: Disk Utilization Time
+ unit: "% of time working"
+ chart_type: area
+ dimensions:
+ - name: utilization
+ - name: disk.mops
+ description: Disk Merged Operations
+ unit: "merged operations/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.mops
+ description: Disk Merged Discard Operations
+ unit: "merged operations/s"
+ chart_type: line
+ dimensions:
+ - name: discards
+ - name: disk.iotime
+ description: Disk Total I/O Time
+ unit: "milliseconds/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.iotime
+ description: Disk Total I/O Time for Extended Operations
+ unit: "milliseconds/s"
+ chart_type: line
+ dimensions:
+ - name: discards
+ - name: flushes
+ - name: disk.await
+ description: Average Completed I/O Operation Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.await
+ description: Average Completed Extended I/O Operation Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: discards
+ - name: flushes
+ - name: disk.avgsz
+ description: Average Completed I/O Operation Bandwidth
+ unit: "KiB/operation"
+ chart_type: area
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: disk_ext.avgsz
+ description: Average Amount of Discarded Data
+ unit: "KiB/operation"
+ chart_type: area
+ dimensions:
+ - name: discards
+ - name: disk.svctm
+ description: Average Service Time
+ unit: "milliseconds/operation"
+ chart_type: line
+ dimensions:
+ - name: svctm
+ - name: disk.bcache_cache_alloc
+ description: BCache Cache Allocations
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: ununsed
+ - name: dirty
+ - name: clean
+ - name: metadata
+ - name: undefined
+ - name: disk.bcache_hit_ratio
+ description: BCache Cache Hit Ratio
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: 5min
+ - name: 1hour
+ - name: 1day
+ - name: ever
+ - name: disk.bcache_rates
+ description: BCache Rates
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: congested
+ - name: writeback
+ - name: disk.bcache_size
+ description: BCache Cache Sizes
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: dirty
+ - name: disk.bcache_usage
+ description: BCache Cache Usage
+ unit: "percentage"
+ chart_type: area
+ dimensions:
+ - name: avail
+ - name: disk.bcache_cache_read_races
+ description: BCache Cache Read Races
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: races
+ - name: errors
+ - name: disk.bcache
+ description: BCache Cache I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: collisions
+ - name: readaheads
+ - name: disk.bcache_bypass
+ description: BCache Cache Bypass I/O Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: hits
+ - name: misses
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/mdstat
+ monitored_instance:
+ name: MD RAID
+ link: ""
+ categories:
+ - data-collection.linux-systems.disk-metrics
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - raid
+ - mdadm
+ - mdstat
+ - raid
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors the status of MD RAID devices."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: mdstat_last_collected
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
+ metric: md.disks
+ info: number of seconds since the last successful data collection
+ - name: mdstat_disks
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
+ metric: md.disks
+ info:
+ number of devices in the down state for the ${label:device} ${label:raid_level} array. Any number > 0 indicates that the array is degraded.
+ - name: mdstat_mismatch_cnt
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
+ metric: md.mismatch_cnt
+ info: number of unsynchronized blocks for the ${label:device} ${label:raid_level} array
+ - name: mdstat_nonredundant_last_collected
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
+ metric: md.nonredundant
+ info: number of seconds since the last successful data collection
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: md.health
+ description: Faulty Devices In MD
+ unit: "failed disks"
+ chart_type: line
+ dimensions:
+ - name: a dimension per md array
+ - name: md array
+ description: ""
+ labels:
+ - name: device
+ description: TBD
+ - name: raid_level
+ description: TBD
+ metrics:
+ - name: md.disks
+ description: Disks Stats
+ unit: "disks"
+ chart_type: stacked
+ dimensions:
+ - name: inuse
+ - name: down
+ - name: md.mismatch_cnt
+ description: Mismatch Count
+ unit: "unsynchronized blocks"
+ chart_type: line
+ dimensions:
+ - name: count
+ - name: md.status
+ description: Current Status
+ unit: "percent"
+ chart_type: line
+ dimensions:
+ - name: check
+ - name: resync
+ - name: recovery
+ - name: reshape
+ - name: md.expected_time_until_operation_finish
+ description: Approximate Time Until Finish
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: finish_in
+ - name: md.operation_speed
+ description: Operation Speed
+ unit: "KiB/s"
+ chart_type: line
+ dimensions:
+ - name: speed
+ - name: md.nonredundant
+ description: Nonredundant Array Availability
+ unit: "boolean"
+ chart_type: line
+ dimensions:
+ - name: available
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/dev
+ monitored_instance:
+ name: Network interfaces
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - network interfaces
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor network interface metrics about bandwidth, state, errors and more."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: interface_speed
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: network interface ${label:device} current speed
+ os: "*"
+ - name: 1m_received_traffic_overflow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: average inbound utilization for the network interface ${label:device} over the last minute
+ os: "linux"
+ - name: 1m_sent_traffic_overflow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.net
+ info: average outbound utilization for the network interface ${label:device} over the last minute
+ os: "linux"
+ - name: inbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: outbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: wifi_inbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: wifi_outbound_packets_dropped_ratio
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
+ os: "linux"
+ - name: 1m_received_packets_rate
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info: average number of packets received by the network interface ${label:device} over the last minute
+ os: "linux freebsd"
+ - name: 10s_received_packets_storm
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.packets
+ info:
+ ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over
+ the last minute
+ os: "linux freebsd"
+ - name: inbound_packets_dropped
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.drops
+ info: number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes
+ os: "linux"
+ - name: outbound_packets_dropped
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.drops
+ info: number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes
+ os: "linux"
+ - name: 10min_fifo_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
+ metric: net.fifo
+ info: number of FIFO errors for the network interface ${label:device} in the last 10 minutes
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.net
+ description: Physical Network Interfaces Aggregated Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: network device
+ description: ""
+ labels:
+ - name: interface_type
+ description: TBD
+ - name: device
+ description: TBD
+ metrics:
+ - name: net.net
+ description: Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: net.speed
+ description: Interface Speed
+ unit: "kilobits/s"
+ chart_type: line
+ dimensions:
+ - name: speed
+ - name: net.duplex
+ description: Interface Duplex State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: full
+ - name: half
+ - name: unknown
+ - name: net.operstate
+ description: Interface Operational State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: notpresent
+ - name: lowerlayerdown
+ - name: testing
+ - name: dormant
+ - name: unknown
+ - name: net.carrier
+ description: Interface Physical Link State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: up
+ - name: down
+ - name: net.mtu
+ description: Interface MTU
+ unit: "octets"
+ chart_type: line
+ dimensions:
+ - name: mtu
+ - name: net.packets
+ description: Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: multicast
+ - name: net.errors
+ description: Interface Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: net.drops
+ description: Interface Drops
+ unit: "drops/s"
+ chart_type: line
+ dimensions:
+ - name: inbound
+ - name: outbound
+ - name: net.fifo
+ description: Interface FIFO Buffer Errors
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: receive
+ - name: transmit
+ - name: net.compressed
+ description: Compressed Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: net.events
+ description: Network Interface Events
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: frames
+ - name: collisions
+ - name: carrier
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/wireless
+ monitored_instance:
+ name: Wireless network interfaces
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - wireless devices
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor wireless devices with metrics about status, link quality, signal level, noise level and more."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: wireless device
+ description: ""
+ labels: []
+ metrics:
+ - name: wireless.status
+ description: Internal status reported by interface.
+ unit: "status"
+ chart_type: line
+ dimensions:
+ - name: status
+ - name: wireless.link_quality
+ description: Overall quality of the link. This is an aggregate value, and depends on the driver and hardware.
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: link_quality
+ - name: wireless.signal_level
+ description:
+ The signal level is the wireless signal power level received by the wireless client. The closer the value is to 0, the stronger the
+ signal.
+ unit: "dBm"
+ chart_type: line
+ dimensions:
+ - name: signal_level
+ - name: wireless.noise_level
+ description:
+ The noise level indicates the amount of background noise in your environment. The closer the value to 0, the greater the noise level.
+ unit: "dBm"
+ chart_type: line
+ dimensions:
+ - name: noise_level
+ - name: wireless.discarded_packets
+ description: Packet discarded in the wireless adapter due to wireless specific problems.
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: nwid
+ - name: crypt
+ - name: frag
+ - name: retry
+ - name: misc
+ - name: wireless.missed_beacons
+ description: Number of missed beacons.
+ unit: "frames/s"
+ chart_type: line
+ dimensions:
+ - name: missed_beacons
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/class/infiniband
+ monitored_instance:
+ name: InfiniBand
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - infiniband
+ - rdma
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors InfiniBand network inteface statistics."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: infiniband port
+ description: ""
+ labels: []
+ metrics:
+ - name: ib.bytes
+ description: Bandwidth usage
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: Received
+ - name: Sent
+ - name: ib.packets
+ description: Packets Statistics
+ unit: "packets/s"
+ chart_type: area
+ dimensions:
+ - name: Received
+ - name: Sent
+ - name: Mcast_rcvd
+ - name: Mcast_sent
+ - name: Ucast_rcvd
+ - name: Ucast_sent
+ - name: ib.errors
+ description: Error Counters
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: Pkts_malformated
+ - name: Pkts_rcvd_discarded
+ - name: Pkts_sent_discarded
+ - name: Tick_Wait_to_send
+ - name: Pkts_missed_resource
+ - name: Buffer_overrun
+ - name: Link_Downed
+ - name: Link_recovered
+ - name: Link_integrity_err
+ - name: Link_minor_errors
+ - name: Pkts_rcvd_with_EBP
+ - name: Pkts_rcvd_discarded_by_switch
+ - name: Pkts_sent_discarded_by_switch
+ - name: ib.hwerrors
+ description: Hardware Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: Duplicated_packets
+ - name: Pkt_Seq_Num_gap
+ - name: Ack_timer_expired
+ - name: Drop_missing_buffer
+ - name: Drop_out_of_sequence
+ - name: NAK_sequence_rcvd
+ - name: CQE_err_Req
+ - name: CQE_err_Resp
+ - name: CQE_Flushed_err_Req
+ - name: CQE_Flushed_err_Resp
+ - name: Remote_access_err_Req
+ - name: Remote_access_err_Resp
+ - name: Remote_invalid_req
+ - name: Local_length_err_Resp
+ - name: RNR_NAK_Packets
+ - name: CNP_Pkts_ignored
+ - name: RoCE_ICRC_Errors
+ - name: ib.hwpackets
+ description: Hardware Packets Statistics
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: RoCEv2_Congestion_sent
+ - name: RoCEv2_Congestion_rcvd
+ - name: IB_Congestion_handled
+ - name: ATOMIC_req_rcvd
+ - name: Connection_req_rcvd
+ - name: Read_req_rcvd
+ - name: Write_req_rcvd
+ - name: RoCE_retrans_adaptive
+ - name: RoCE_retrans_timeout
+ - name: RoCE_slow_restart
+ - name: RoCE_slow_restart_congestion
+ - name: RoCE_slow_restart_count
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/netstat
+ monitored_instance:
+ name: Network statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ip
+ - udp
+ - udplite
+ - icmp
+ - netstat
+ - snmp
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides metrics from the `netstat`, `snmp` and `snmp6` modules."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: 1m_tcp_syn_queue_drops
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
+ metric: ip.tcp_syn_queue
+ info: average number of SYN requests was dropped due to the full TCP SYN queue over the last minute (SYN cookies were not enabled)
+ os: "linux"
+ - name: 1m_tcp_syn_queue_cookies
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
+ metric: ip.tcp_syn_queue
+ info: average number of sent SYN cookies due to the full TCP SYN queue over the last minute
+ os: "linux"
+ - name: 1m_tcp_accept_queue_overflows
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
+ metric: ip.tcp_accept_queue
+ info: average number of overflows in the TCP accept queue over the last minute
+ os: "linux"
+ - name: 1m_tcp_accept_queue_drops
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
+ metric: ip.tcp_accept_queue
+ info: average number of dropped packets in the TCP accept queue over the last minute
+ os: "linux"
+ - name: tcp_connections
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf
+ metric: ipv4.tcpsock
+ info: IPv4 TCP connections utilization
+ os: "linux"
+ - name: 1m_ipv4_tcp_resets_sent
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info: average number of sent TCP RESETS over the last minute
+ os: "linux"
+ - name: 10s_ipv4_tcp_resets_sent
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info:
+ average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has
+ crashed. Netdata will not send a clear notification for this alarm.
+ os: "linux"
+ - name: 1m_ipv4_tcp_resets_received
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info: average number of received TCP RESETS over the last minute
+ os: "linux freebsd"
+ - name: 10s_ipv4_tcp_resets_received
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
+ metric: ipv4.tcphandshake
+ info:
+ average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed.
+ Netdata will not send a clear notification for this alarm.
+ os: "linux freebsd"
+ - name: 1m_ipv4_udp_receive_buffer_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
+ metric: ipv4.udperrors
+ info: average number of UDP receive buffer errors over the last minute
+ os: "linux freebsd"
+ - name: 1m_ipv4_udp_send_buffer_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
+ metric: ipv4.udperrors
+ info: average number of UDP send buffer errors over the last minute
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: system.ip
+ description: IP Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ip.inerrors
+ description: IP Input Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: noroutes
+ - name: truncated
+ - name: checksum
+ - name: ip.mcast
+ description: IP Multicast Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ip.bcast
+ description: IP Broadcast Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ip.mcastpkts
+ description: IP Multicast Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ip.bcastpkts
+ description: IP Broadcast Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ip.ecnpkts
+ description: IP ECN Statistics
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: CEP
+ - name: NoECTP
+ - name: ECTP0
+ - name: ECTP1
+ - name: ip.tcpmemorypressures
+ description: TCP Memory Pressures
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: pressures
+ - name: ip.tcpconnaborts
+ description: TCP Connection Aborts
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: baddata
+ - name: userclosed
+ - name: nomemory
+ - name: timeout
+ - name: linger
+ - name: failed
+ - name: ip.tcpreorders
+ description: TCP Reordered Packets by Detection Method
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: timestamp
+ - name: sack
+ - name: fack
+ - name: reno
+ - name: ip.tcpofo
+ description: TCP Out-Of-Order Queue
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: inqueue
+ - name: dropped
+ - name: merged
+ - name: pruned
+ - name: ip.tcpsyncookies
+ description: TCP SYN Cookies
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: failed
+ - name: ip.tcp_syn_queue
+ description: TCP SYN Queue Issues
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: drops
+ - name: cookies
+ - name: ip.tcp_accept_queue
+ description: TCP Accept Queue Issues
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: overflows
+ - name: drops
+ - name: ipv4.packets
+ description: IPv4 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivered
+ - name: ipv4.fragsout
+ description: IPv4 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: created
+ - name: ipv4.fragsin
+ description: IPv4 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv4.errors
+ description: IPv4 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: OutNoRoutes
+ - name: InAddrErrors
+ - name: InUnknownProtos
+ - name: ipv4.icmp
+ description: IPv4 ICMP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.icmp_errors
+ description: IPv4 ICMP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: ipv4.icmpmsg
+ description: IPv4 ICMP Messages
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InEchoReps
+ - name: OutEchoReps
+ - name: InDestUnreachs
+ - name: OutDestUnreachs
+ - name: InRedirects
+ - name: OutRedirects
+ - name: InEchos
+ - name: OutEchos
+ - name: InRouterAdvert
+ - name: OutRouterAdvert
+ - name: InRouterSelect
+ - name: OutRouterSelect
+ - name: InTimeExcds
+ - name: OutTimeExcds
+ - name: InParmProbs
+ - name: OutParmProbs
+ - name: InTimestamps
+ - name: OutTimestamps
+ - name: InTimestampReps
+ - name: OutTimestampReps
+ - name: ipv4.tcpsock
+ description: IPv4 TCP Connections
+ unit: "active connections"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: ipv4.tcppackets
+ description: IPv4 TCP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.tcperrors
+ description: IPv4 TCP Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InErrs
+ - name: InCsumErrors
+ - name: RetransSegs
+ - name: ipv4.tcpopens
+ description: IPv4 TCP Opens
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: passive
+ - name: ipv4.tcphandshake
+ description: IPv4 TCP Handshake Issues
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: EstabResets
+ - name: OutRsts
+ - name: AttemptFails
+ - name: SynRetrans
+ - name: ipv4.udppackets
+ description: IPv4 UDP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.udperrors
+ description: IPv4 UDP Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: RcvbufErrors
+ - name: SndbufErrors
+ - name: InErrors
+ - name: NoPorts
+ - name: InCsumErrors
+ - name: IgnoredMulti
+ - name: ipv4.udplite
+ description: IPv4 UDPLite Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv4.udplite_errors
+ description: IPv4 UDPLite Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: RcvbufErrors
+ - name: SndbufErrors
+ - name: InErrors
+ - name: NoPorts
+ - name: InCsumErrors
+ - name: IgnoredMulti
+ - name: system.ipv6
+ description: IPv6 Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: system.ipv6
+ description: IPv6 Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: forwarded
+ - name: delivers
+ - name: ipv6.fragsout
+ description: IPv6 Fragments Sent
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: all
+ - name: ipv6.fragsin
+ description: IPv6 Fragments Reassembly
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: timeout
+ - name: all
+ - name: ipv6.errors
+ description: IPv6 Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InDiscards
+ - name: OutDiscards
+ - name: InHdrErrors
+ - name: InAddrErrors
+ - name: InUnknownProtos
+ - name: InTooBigErrors
+ - name: InTruncatedPkts
+ - name: InNoRoutes
+ - name: OutNoRoutes
+ - name: ipv6.udppackets
+ description: IPv6 UDP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.udperrors
+ description: IPv6 UDP Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: RcvbufErrors
+ - name: SndbufErrors
+ - name: InErrors
+ - name: NoPorts
+ - name: InCsumErrors
+ - name: IgnoredMulti
+ - name: ipv6.udplitepackets
+ description: IPv6 UDPlite Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.udpliteerrors
+ description: IPv6 UDP Lite Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: RcvbufErrors
+ - name: SndbufErrors
+ - name: InErrors
+ - name: NoPorts
+ - name: InCsumErrors
+ - name: ipv6.mcast
+ description: IPv6 Multicast Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.bcast
+ description: IPv6 Broadcast Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.mcastpkts
+ description: IPv6 Multicast Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmp
+ description: IPv6 ICMP Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmpredir
+ description: IPv6 ICMP Redirects
+ unit: "redirects/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmperrors
+ description: IPv6 ICMP Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: InErrors
+ - name: OutErrors
+ - name: InCsumErrors
+ - name: InDestUnreachs
+ - name: InPktTooBigs
+ - name: InTimeExcds
+ - name: InParmProblems
+ - name: OutDestUnreachs
+ - name: OutPktTooBigs
+ - name: OutTimeExcds
+ - name: OutParmProblems
+ - name: ipv6.icmpechos
+ description: IPv6 ICMP Echo
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InEchos
+ - name: OutEchos
+ - name: InEchoReplies
+ - name: OutEchoReplies
+ - name: ipv6.groupmemb
+ description: IPv6 ICMP Group Membership
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InQueries
+ - name: OutQueries
+ - name: InResponses
+ - name: OutResponses
+ - name: InReductions
+ - name: OutReductions
+ - name: ipv6.icmprouter
+ description: IPv6 Router Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmpneighbor
+ description: IPv6 Neighbor Messages
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InSolicits
+ - name: OutSolicits
+ - name: InAdvertisements
+ - name: OutAdvertisements
+ - name: ipv6.icmpmldv2
+ description: IPv6 ICMP MLDv2 Reports
+ unit: "reports/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipv6.icmptypes
+ description: IPv6 ICMP Types
+ unit: "messages/s"
+ chart_type: line
+ dimensions:
+ - name: InType1
+ - name: InType128
+ - name: InType129
+ - name: InType136
+ - name: OutType1
+ - name: OutType128
+ - name: OutType129
+ - name: OutType133
+ - name: OutType135
+ - name: OutType143
+ - name: ipv6.ect
+ description: IPv6 ECT Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InNoECTPkts
+ - name: InECT1Pkts
+ - name: InECT0Pkts
+ - name: InCEPkts
+ - name: ipv6.ect
+ description: IPv6 ECT Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: InNoECTPkts
+ - name: InECT1Pkts
+ - name: InECT0Pkts
+ - name: InCEPkts
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/sockstat
+ monitored_instance:
+ name: Socket statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - sockets
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides socket statistics."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: tcp_orphans
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_orphans.conf
+ metric: ipv4.sockstat_tcp_sockets
+ info: orphan IPv4 TCP sockets utilization
+ os: "linux"
+ - name: tcp_memory
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_mem.conf
+ metric: ipv4.sockstat_tcp_mem
+ info: TCP memory utilization
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: ipv4.sockstat_sockets
+ description: IPv4 Sockets Used
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: ipv4.sockstat_tcp_sockets
+ description: IPv4 TCP Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: orphan
+ - name: inuse
+ - name: timewait
+ - name: ipv4.sockstat_tcp_mem
+ description: IPv4 TCP Sockets Memory
+ unit: "KiB"
+ chart_type: area
+ dimensions:
+ - name: mem
+ - name: ipv4.sockstat_udp_sockets
+ description: IPv4 UDP Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv4.sockstat_udp_mem
+ description: IPv4 UDP Sockets Memory
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: mem
+ - name: ipv4.sockstat_udplite_sockets
+ description: IPv4 UDPLITE Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv4.sockstat_raw_sockets
+ description: IPv4 RAW Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv4.sockstat_frag_sockets
+ description: IPv4 FRAG Sockets
+ unit: "fragments"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv4.sockstat_frag_mem
+ description: IPv4 FRAG Sockets Memory
+ unit: "KiB"
+ chart_type: area
+ dimensions:
+ - name: mem
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/sockstat6
+ monitored_instance:
+ name: IPv6 Socket Statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ipv6 sockets
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides IPv6 socket statistics."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: ipv6.sockstat6_tcp_sockets
+ description: IPv6 TCP Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv6.sockstat6_udp_sockets
+ description: IPv6 UDP Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv6.sockstat6_udplite_sockets
+ description: IPv6 UDPLITE Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv6.sockstat6_raw_sockets
+ description: IPv6 RAW Sockets
+ unit: "sockets"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: ipv6.sockstat6_frag_sockets
+ description: IPv6 FRAG Sockets
+ unit: "fragments"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/ip_vs_stats
+ monitored_instance:
+ name: IP Virtual Server
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - ip virtual server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors IP Virtual Server statistics"
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: ipvs.sockets
+ description: IPVS New Connections
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: ipvs.packets
+ description: IPVS Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: ipvs.net
+ description: IPVS Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: received
+ - name: sent
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/rpc/nfs
+ monitored_instance:
+ name: NFS Client
+ link: ""
+ categories:
+ - data-collection.linux-systems.filesystem-metrics.nfs
+ icon_filename: "nfs.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - nfs client
+ - filesystem
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides statistics from the Linux kernel's NFS Client."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: nfs.net
+ description: NFS Client Network
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: udp
+ - name: tcp
+ - name: nfs.rpc
+ description: NFS Client Remote Procedure Calls Statistics
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: calls
+ - name: retransmits
+ - name: auth_refresh
+ - name: nfs.proc2
+ description: NFS v2 Client Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc2 call
+ - name: nfs.proc3
+ description: NFS v3 Client Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc3 call
+ - name: nfs.proc4
+ description: NFS v4 Client Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc4 call
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/rpc/nfsd
+ monitored_instance:
+ name: NFS Server
+ link: ""
+ categories:
+ - data-collection.linux-systems.filesystem-metrics.nfs
+ icon_filename: "nfs.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - nfs server
+ - filesystem
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides statistics from the Linux kernel's NFS Server."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: nfsd.readcache
+ description: NFS Server Read Cache
+ unit: "reads/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: nocache
+ - name: nfsd.filehandles
+ description: NFS Server File Handles
+ unit: "handles/s"
+ chart_type: line
+ dimensions:
+ - name: stale
+ - name: nfsd.io
+ description: NFS Server I/O
+ unit: "kilobytes/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: nfsd.threads
+ description: NFS Server Threads
+ unit: "threads"
+ chart_type: line
+ dimensions:
+ - name: threads
+ - name: nfsd.net
+ description: NFS Server Network Statistics
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: udp
+ - name: tcp
+ - name: nfsd.rpc
+ description: NFS Server Remote Procedure Calls Statistics
+ unit: "calls/s"
+ chart_type: line
+ dimensions:
+ - name: calls
+ - name: bad_format
+ - name: bad_auth
+ - name: nfsd.proc2
+ description: NFS v2 Server Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc2 call
+ - name: nfsd.proc3
+ description: NFS v3 Server Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc3 call
+ - name: nfsd.proc4
+ description: NFS v4 Server Remote Procedure Calls
+ unit: "calls/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc4 call
+ - name: nfsd.proc4ops
+ description: NFS v4 Server Operations
+ unit: "operations/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per proc4 operation
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/sctp/snmp
+ monitored_instance:
+ name: SCTP Statistics
+ link: ""
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "network-wired.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - sctp
+ - stream control transmission protocol
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides statistics about the Stream Control Transmission Protocol (SCTP)."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: sctp.established
+ description: SCTP current total number of established associations
+ unit: "associations"
+ chart_type: line
+ dimensions:
+ - name: established
+ - name: sctp.transitions
+ description: SCTP Association Transitions
+ unit: "transitions/s"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: passive
+ - name: aborted
+ - name: shutdown
+ - name: sctp.packets
+ description: SCTP Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: sctp.packet_errors
+ description: SCTP Packet Errors
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: invalid
+ - name: checksum
+ - name: sctp.fragmentation
+ description: SCTP Fragmentation
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: reassembled
+ - name: fragmented
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/stat/nf_conntrack
+ monitored_instance:
+ name: Conntrack
+ link: ""
+ categories:
+ - data-collection.linux-systems.firewall-metrics
+ icon_filename: "firewall.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - connection tracking mechanism
+ - netfilter
+ - conntrack
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors the connection tracking mechanism of Netfilter in the Linux Kernel."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: netfilter_conntrack_full
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/netfilter.conf
+ metric: netfilter.conntrack_sockets
+ info: netfilter connection tracker table size utilization
+ os: "linux"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: netfilter.conntrack_sockets
+ description: Connection Tracker Connections
+ unit: "active connections"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: netfilter.conntrack_new
+ description: Connection Tracker New Connections
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: new
+ - name: ignore
+ - name: invalid
+ - name: netfilter.conntrack_changes
+ description: Connection Tracker Changes
+ unit: "changes/s"
+ chart_type: line
+ dimensions:
+ - name: inserted
+ - name: deleted
+ - name: delete_list
+ - name: netfilter.conntrack_expect
+ description: Connection Tracker Expectations
+ unit: "expectations/s"
+ chart_type: line
+ dimensions:
+ - name: created
+ - name: deleted
+ - name: new
+ - name: netfilter.conntrack_search
+ description: Connection Tracker Searches
+ unit: "searches/s"
+ chart_type: line
+ dimensions:
+ - name: searched
+ - name: restarted
+ - name: found
+ - name: netfilter.conntrack_errors
+ description: Connection Tracker Errors
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: icmp_error
+ - name: error_failed
+ - name: drop
+ - name: early_drop
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/net/stat/synproxy
+ monitored_instance:
+ name: Synproxy
+ link: ""
+ categories:
+ - data-collection.linux-systems.firewall-metrics
+ icon_filename: "firewall.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - synproxy
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides statistics about the Synproxy netfilter module."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: netfilter.synproxy_syn_received
+ description: SYNPROXY SYN Packets received
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: netfilter.synproxy_conn_reopened
+ description: SYNPROXY Connections Reopened
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: reopened
+ - name: netfilter.synproxy_cookies
+ description: SYNPROXY TCP Cookies
+ unit: "cookies/s"
+ chart_type: line
+ dimensions:
+ - name: valid
+ - name: invalid
+ - name: retransmits
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/spl/kstat/zfs
+ monitored_instance:
+ name: ZFS Pools
+ link: ""
+ categories:
+ - data-collection.linux-systems.filesystem-metrics.zfs
+ icon_filename: "filesystem.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - zfs pools
+ - pools
+ - zfs
+ - filesystem
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides metrics about the state of ZFS pools."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: zfs_pool_state_warn
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
+ metric: zfspool.state
+ info: ZFS pool ${label:pool} state is degraded
+ - name: zfs_pool_state_crit
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
+ metric: zfspool.state
+ info: ZFS pool ${label:pool} state is faulted or unavail
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: zfs pool
+ description: ""
+ labels:
+ - name: pool
+ description: TBD
+ metrics:
+ - name: zfspool.state
+ description: ZFS pool state
+ unit: "boolean"
+ chart_type: line
+ dimensions:
+ - name: online
+ - name: degraded
+ - name: faulted
+ - name: offline
+ - name: removed
+ - name: unavail
+ - name: suspended
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /proc/spl/kstat/zfs/arcstats
+ monitored_instance:
+ name: ZFS Adaptive Replacement Cache
+ link: ""
+ categories:
+ - data-collection.linux-systems.filesystem-metrics.zfs
+ icon_filename: "filesystem.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - zfs arc
+ - arc
+ - zfs
+ - filesystem
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors ZFS Adadptive Replacement Cache (ARC) statistics."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: zfs_memory_throttle
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
+ metric: zfs.memory_ops
+ info: number of times ZFS had to limit the ARC growth in the last 10 minutes
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: zfs.arc_size
+ description: ZFS ARC Size
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: arcsz
+ - name: target
+ - name: min
+ - name: max
+ - name: zfs.l2_size
+ description: ZFS L2 ARC Size
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: actual
+ - name: size
+ - name: zfs.reads
+ description: ZFS Reads
+ unit: "reads/s"
+ chart_type: area
+ dimensions:
+ - name: arc
+ - name: demand
+ - name: prefetch
+ - name: metadata
+ - name: l2
+ - name: zfs.bytes
+ description: ZFS ARC L2 Read/Write Rate
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: zfs.hits
+ description: ZFS ARC Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.hits_rate
+ description: ZFS ARC Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.dhits
+ description: ZFS Demand Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.dhits_rate
+ description: ZFS Demand Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.phits
+ description: ZFS Prefetch Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.phits_rate
+ description: ZFS Prefetch Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.mhits
+ description: ZFS Metadata Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.mhits_rate
+ description: ZFS Metadata Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.l2hits
+ description: ZFS L2 Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.l2hits_rate
+ description: ZFS L2 Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.list_hits
+ description: ZFS List Hits
+ unit: "hits/s"
+ chart_type: area
+ dimensions:
+ - name: mfu
+ - name: mfu_ghost
+ - name: mru
+ - name: mru_ghost
+ - name: zfs.arc_size_breakdown
+ description: ZFS ARC Size Breakdown
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: recent
+ - name: frequent
+ - name: zfs.memory_ops
+ description: ZFS Memory Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: direct
+ - name: throttled
+ - name: indirect
+ - name: zfs.important_ops
+ description: ZFS Important Operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: evict_skip
+ - name: deleted
+ - name: mutex_miss
+ - name: hash_collisions
+ - name: zfs.actual_hits
+ description: ZFS Actual Cache Hits
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.actual_hits_rate
+ description: ZFS Actual Cache Hits Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.demand_data_hits
+ description: ZFS Data Demand Efficiency
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.demand_data_hits_rate
+ description: ZFS Data Demand Efficiency Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.prefetch_data_hits
+ description: ZFS Data Prefetch Efficiency
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.prefetch_data_hits_rate
+ description: ZFS Data Prefetch Efficiency Rate
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: zfs.hash_elements
+ description: ZFS ARC Hash Elements
+ unit: "elements"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: max
+ - name: zfs.hash_chains
+ description: ZFS ARC Hash Chains
+ unit: "chains"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: max
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/fs/btrfs
+ monitored_instance:
+ name: BTRFS
+ link: ""
+ categories:
+ - data-collection.linux-systems.filesystem-metrics.btrfs
+ icon_filename: "filesystem.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - btrfs
+ - filesystem
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration provides usage and error statistics from the BTRFS filesystem."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: btrfs_allocated
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.disk
+ info: percentage of allocated BTRFS physical disk space
+ os: "*"
+ - name: btrfs_data
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.data
+ info: utilization of BTRFS data space
+ os: "*"
+ - name: btrfs_metadata
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.metadata
+ info: utilization of BTRFS metadata space
+ os: "*"
+ - name: btrfs_system
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.system
+ info: utilization of BTRFS system space
+ os: "*"
+ - name: btrfs_device_read_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.device_errors
+ info: number of encountered BTRFS read errors
+ os: "*"
+ - name: btrfs_device_write_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.device_errors
+ info: number of encountered BTRFS write errors
+ os: "*"
+ - name: btrfs_device_flush_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.device_errors
+ info: number of encountered BTRFS flush errors
+ os: "*"
+ - name: btrfs_device_corruption_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.device_errors
+ info: number of encountered BTRFS corruption errors
+ os: "*"
+ - name: btrfs_device_generation_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
+ metric: btrfs.device_errors
+ info: number of encountered BTRFS generation errors
+ os: "*"
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: btrfs filesystem
+ description: ""
+ labels:
+ - name: filesystem_uuid
+ description: TBD
+ - name: filesystem_label
+ description: TBD
+ metrics:
+ - name: btrfs.disk
+ description: BTRFS Physical Disk Allocation
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: unallocated
+ - name: data_free
+ - name: data_used
+ - name: meta_free
+ - name: meta_used
+ - name: sys_free
+ - name: sys_used
+ - name: btrfs.data
+ description: BTRFS Data Allocation
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: btrfs.metadata
+ description: BTRFS Metadata Allocation
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: reserved
+ - name: btrfs.system
+ description: BTRFS System Allocation
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: btrfs.commits
+ description: BTRFS Commits
+ unit: "commits"
+ chart_type: line
+ dimensions:
+ - name: commits
+ - name: btrfs.commits_perc_time
+ description: BTRFS Commits Time Share
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: commits
+ - name: btrfs.commit_timings
+ description: BTRFS Commit Timings
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: last
+ - name: max
+ - name: btrfs device
+ description: ""
+ labels:
+ - name: device_id
+ description: TBD
+ - name: filesystem_uuid
+ description: TBD
+ - name: filesystem_label
+ description: TBD
+ metrics:
+ - name: btrfs.device_errors
+ description: BTRFS Device Errors
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: write_errs
+ - name: read_errs
+ - name: flush_errs
+ - name: corruption_errs
+ - name: generation_errs
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/class/power_supply
+ monitored_instance:
+ name: Power Supply
+ link: ""
+ categories:
+ - data-collection.linux-systems.power-supply-metrics
+ icon_filename: "powersupply.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - psu
+ - power supply
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors Power supply metrics, such as battery status, AC power status and more."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: linux_power_supply_capacity
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/linux_power_supply.conf
+ metric: powersupply.capacity
+ info: percentage of remaining power supply capacity
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: power device
+ description: ""
+ labels:
+ - name: device
+ description: TBD
+ metrics:
+ - name: powersupply.capacity
+ description: Battery capacity
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: capacity
+ - name: powersupply.charge
+ description: Battery charge
+ unit: "Ah"
+ chart_type: line
+ dimensions:
+ - name: empty_design
+ - name: empty
+ - name: now
+ - name: full
+ - name: full_design
+ - name: powersupply.energy
+ description: Battery energy
+ unit: "Wh"
+ chart_type: line
+ dimensions:
+ - name: empty_design
+ - name: empty
+ - name: now
+ - name: full
+ - name: full_design
+ - name: powersupply.voltage
+ description: Power supply voltage
+ unit: "V"
+ chart_type: line
+ dimensions:
+ - name: min_design
+ - name: min
+ - name: now
+ - name: max
+ - name: max_design
+ - meta:
+ plugin_name: proc.plugin
+ module_name: /sys/class/drm
+ monitored_instance:
+ name: AMD GPU
+ link: "https://www.amd.com"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: amd.svg
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - amd
+ - gpu
+ - hardware
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This integration monitors AMD GPU metrics, such as utilization, clock frequency and memory usage."
+ method_description: "It reads `/sys/class/drm` to collect metrics for every AMD GPU card instance it encounters."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: ""
+ folding:
+ title: ""
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: gpu
+ description: "These metrics refer to the GPU."
+ labels:
+ - name: product_name
+ description: GPU product name (e.g. AMD RX 6600)
+ metrics:
+ - name: amdgpu.gpu_utilization
+ description: GPU utilization
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: utilization
+ - name: amdgpu.gpu_mem_utilization
+ description: GPU memory utilization
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: utilization
+ - name: amdgpu.gpu_clk_frequency
+ description: GPU clock frequency
+ unit: "MHz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - name: amdgpu.gpu_mem_clk_frequency
+ description: GPU memory clock frequency
+ unit: "MHz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - name: amdgpu.gpu_mem_vram_usage_perc
+ description: VRAM memory usage percentage
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: usage
+ - name: amdgpu.gpu_mem_vram_usage
+ description: VRAM memory usage
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: free
+ - name: used
+ - name: amdgpu.gpu_mem_vis_vram_usage_perc
+ description: visible VRAM memory usage percentage
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: usage
+ - name: amdgpu.gpu_mem_vis_vram_usage
+ description: visible VRAM memory usage
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: free
+ - name: used
+ - name: amdgpu.gpu_mem_gtt_usage_perc
+ description: GTT memory usage percentage
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: usage
+ - name: amdgpu.gpu_mem_gtt_usage
+ description: GTT memory usage
+ unit: "bytes"
+ chart_type: area
+ dimensions:
+ - name: free
+ - name: used
diff --git a/collectors/proc.plugin/metrics.csv b/collectors/proc.plugin/metrics.csv
deleted file mode 100644
index ea0d1b364..000000000
--- a/collectors/proc.plugin/metrics.csv
+++ /dev/null
@@ -1,271 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.cpu,,"guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle",percentage,Total CPU utilization,stacked,,proc.plugin,/proc/stat
-cpu.cpu,cpu core,"guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle",percentage,Core utilization,stacked,cpu,proc.plugin,/proc/stat
-system.intr,,interrupts,interrupts/s,CPU Interrupts,line,,proc.plugin,/proc/stat
-system.ctxt,,switches,context switches/s,CPU Context Switches,line,,proc.plugin,/proc/stat
-system.forks,,started,processes/s,Started Processes,line,,proc.plugin,/proc/stat
-system.processes,,"running, blocked",processes,System Processes,line,,proc.plugin,/proc/stat
-cpu.core_throttling,,a dimension per cpu core,events/s,Core Thermal Throttling Events,line,,proc.plugin,/proc/stat
-cpu.package_throttling,,a dimension per package,events/s,Package Thermal Throttling Events,line,,proc.plugin,/proc/stat
-cpu.cpufreq,,a dimension per cpu core,MHz,Current CPU Frequency,line,,proc.plugin,/proc/stat
-cpuidle.cpu_cstate_residency_time,cpu core,a dimension per c-state,percentage,C-state residency time,stacked,cpu,proc.plugin,/proc/stat
-system.entropy,,entropy,entropy,Available Entropy,line,,proc.plugin,/proc/sys/kernel/random/entropy_avail
-system.uptime,,uptime,seconds,System Uptime,line,,proc.plugin,/proc/uptime
-system.swapio,,"in, out",KiB/s,Swap I/O,area,,proc.plugin,/proc/vmstat
-system.pgpgio,,"in, out",KiB/s,Memory Paged from/to disk,area,,proc.plugin,/proc/vmstat
-system.pgfaults,,"minor, major",faults/s,Memory Page Faults,line,,proc.plugin,/proc/vmstat
-system.interrupts,,a dimension per device,interrupts/s,System interrupts,stacked,,proc.plugin,/proc/interrupts
-cpu.interrupts,cpu core,a dimension per device,interrupts/s,CPU interrupts,stacked,cpu,proc.plugin,/proc/interrupts
-system.load,,"load1, load5, load15",load,System Load Average,line,,proc.plugin,/proc/loadavg
-system.active_processes,,active,processes,System Active Processes,line,,proc.plugin,/proc/loadavg
-system.cpu_some_pressure,,"some10, some60, some300",percentage,"CPU some pressure",line,,proc.plugin,/proc/pressure
-system.cpu_some_pressure_stall_time,,time,ms,"CPU some pressure stall time",line,,proc.plugin,/proc/pressure
-system.cpu_full_pressure,,"some10, some60, some300",percentage,"CPU full pressure",line,,proc.plugin,/proc/pressure
-system.cpu_full_pressure_stall_time,,time,ms,"CPU full pressure stall time",line,,proc.plugin,/proc/pressure
-system.memory_some_pressure,,"some10, some60, some300",percentage,"Memory some pressure",line,,proc.plugin,/proc/pressure
-system.memory_some_pressure_stall_time,,time,ms,"Memory some pressure stall time",line,,proc.plugin,/proc/pressure
-system.memory_full_pressure,,"some10, some60, some300",percentage,"Memory full pressure",line,,proc.plugin,/proc/pressure
-system.memory_full_pressure_stall_time,,time,ms,"Memory full pressure stall time",line,,proc.plugin,/proc/pressure
-system.io_some_pressure,,"some10, some60, some300",percentage,"I/O some pressure",line,,proc.plugin,/proc/pressure
-system.io_some_pressure_stall_time,,time,ms,"I/O some pressure stall time",line,,proc.plugin,/proc/pressure
-system.io_full_pressure,,"some10, some60, some300",percentage,"I/O some pressure",line,,proc.plugin,/proc/pressure
-system.io_full_pressure_stall_time,,time,ms,"I/O some pressure stall time",line,,proc.plugin,/proc/pressure
-system.softirqs,,a dimension per softirq,softirqs/s,System softirqs,stacked,,proc.plugin,/proc/softirqs
-cpu.softirqs,cpu core,a dimension per softirq,softirqs/s,CPU softirqs,stacked,cpu,proc.plugin,/proc/softirqs
-system.softnet_stat,,"processed, dropped, squeezed, received_rps, flow_limit_count",events/s,System softnet_stat,line,,proc.plugin,/proc/net/softnet_stat
-cpu.softnet_stat,cpu core,"processed, dropped, squeezed, received_rps, flow_limit_count",events/s,CPU softnet_stat,line,,proc.plugin,/proc/net/softnet_stat
-system.ram,,"free, used, cached, buffers",MiB,System RAM,stacked,,proc.plugin,/proc/meminfo
-mem.available,,avail,MiB,Available RAM for applications,area,,proc.plugin,/proc/meminfo
-system.swap,,"free, used",MiB,System Swap,stacked,,proc.plugin,/proc/meminfo
-mem.hwcorrupt,,HardwareCorrupted,MiB,Corrupted Memory detected by ECC,line,,proc.plugin,/proc/meminfo
-mem.commited,,Commited_AS,MiB,Committed (Allocated) Memory,area,,proc.plugin,/proc/meminfo
-mem.writeback,,"Dirty, Writeback, FuseWriteback, NfsWriteback, Bounce",MiB,Writeback Memory,line,,proc.plugin,/proc/meminfo
-mem.kernel,,"Slab, KernelStack, PageTables, VmallocUsed, Percpu",MiB,Memory Used by Kernel,stacked,,proc.plugin,/proc/meminfo
-mem.slab,,"reclaimable, unreclaimable",MiB,Reclaimable Kernel Memory,stacked,,proc.plugin,/proc/meminfo
-mem.hugepage,,"free, used, surplus, reserved",MiB,Dedicated HugePages Memory,stacked,,proc.plugin,/proc/meminfo
-mem.transparent_hugepages,,"anonymous, shmem",MiB,Transparent HugePages Memory,stacked,,proc.plugin,/proc/meminfo
-mem.balloon,,"inflate, deflate, migrate",KiB/s,Memory Ballooning Operations,line,,proc.plugin,/proc/vmstat
-mem.zswapio,,"in, out",KiB/s,ZSwap I/O,area,,proc.plugin,/proc/vmstat
-mem.ksm_cow,,"swapin, write",KiB/s,KSM Copy On Write Operations,line,,proc.plugin,/proc/vmstat
-mem.thp_faults,,"alloc, fallback, fallback_charge",events/s,Transparent Huge Page Fault Allocations,line,,proc.plugin,/proc/vmstat
-mem.thp_file,,"alloc, fallback, mapped, fallback_charge",events/s,Transparent Huge Page File Allocations,line,,proc.plugin,/proc/vmstat
-mem.thp_zero,,"alloc, failed",events/s,Transparent Huge Zero Page Allocations,line,,proc.plugin,/proc/vmstat
-mem.thp_collapse,,"alloc, failed",events/s,Transparent Huge Pages Collapsed by khugepaged,line,,proc.plugin,/proc/vmstat
-mem.thp_split,,"split, failed, split_pmd, split_deferred",events/s,Transparent Huge Page Splits,line,,proc.plugin,/proc/vmstat
-mem.thp_swapout,,"swapout, fallback",events/s,Transparent Huge Pages Swap Out,line,,proc.plugin,/proc/vmstat
-mem.thp_compact,,"success, fail, stall",events/s,Transparent Huge Pages Compaction,line,,proc.plugin,/proc/vmstat
-mem.pagetype_global,,a dimension per pagesize,B,System orders available,stacked,,proc.plugin,/proc/pagetypeinfo
-mem.pagetype,"node, zone, type",a dimension per pagesize,B,"pagetype_Node{node}_{zone}_{type}",stacked,"node_id, node_zone, node_type",proc.plugin,/proc/pagetypeinfo
-mem.oom_kill,,kills,kills/s,Out of Memory Kills,line,,proc.plugin,/proc/vmstat
-mem.numa,,"local, foreign, interleave, other, pte_updates, huge_pte_updates, hint_faults, hint_faults_local, pages_migrated",events/s,NUMA events,line,,proc.plugin,/proc/vmstat
-mem.ecc_ce,,a dimension per mem controller,errors,ECC Memory Correctable Errors,line,,proc.plugin,/sys/devices/system/edac/mc
-mem.ecc_ue,,a dimension per mem controller,errors,ECC Memory Uncorrectable Errors,line,,proc.plugin,/sys/devices/system/edac/mc
-mem.numa_nodes,numa node,"hit, miss, local, foreign, interleave, other",events/s,NUMA events,line,numa_node,proc.plugin,/sys/devices/system/node
-mem.ksm,,"shared, unshared, sharing, volatile",MiB,Kernel Same Page Merging,stacked,,proc.plugin,/sys/kernel/mm/ksm
-mem.ksm_savings,,"savings, offered",MiB,Kernel Same Page Merging Savings,area,,proc.plugin,/sys/kernel/mm/ksm
-mem.ksm_ratios,,savings,percentage,Kernel Same Page Merging Effectiveness,line,,proc.plugin,/sys/kernel/mm/ksm
-mem.zram_usage,zram device,"compressed, metadata",MiB,ZRAM Memory Usage,area,device,proc.plugin,/sys/block/zram
-mem.zram_savings,zram device,"savings, original",MiB,ZRAM Memory Savings,area,device,proc.plugin,/sys/block/zram
-mem.zram_ratio,zram device,ratio,ratio,ZRAM Compression Ratio (original to compressed),line,device,proc.plugin,/sys/block/zram
-mem.zram_efficiency,zram device,percent,percentage,ZRAM Efficiency,line,device,proc.plugin,/sys/block/zram
-system.ipc_semaphores,,semaphores,semaphores,IPC Semaphores,area,,proc.plugin,ipc
-system.ipc_semaphore_arrays,,arrays,arrays,IPC Semaphore Arrays,area,,proc.plugin,ipc
-system.message_queue_message,,a dimension per queue,messages,IPC Message Queue Number of Messages,stacked,,proc.plugin,ipc
-system.message_queue_bytes,,a dimension per queue,bytes,IPC Message Queue Used Bytes,stacked,,proc.plugin,ipc
-system.shared_memory_segments,,segments,segments,IPC Shared Memory Number of Segments,stacked,,proc.plugin,ipc
-system.shared_memory_bytes,,bytes,bytes,IPC Shared Memory Used Bytes,stacked,,proc.plugin,ipc
-system.io,,"in, out",KiB/s,Disk I/O,area,,proc.plugin,/proc/diskstats
-disk.io,disk,"reads, writes",KiB/s,Disk I/O Bandwidth,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.io,disk,discards,KiB/s,Amount of Discarded Data,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.ops,disk,"reads, writes",operations/s,Disk Completed I/O Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.ops,disk,"discards, flushes",operations/s,Disk Completed Extended I/O Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.qops,disk,operations,operations,Disk Current I/O Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.backlog,disk,backlog,milliseconds,Disk Backlog,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.busy,disk,busy,milliseconds,Disk Busy Time,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.util,disk,utilization,% of time working,Disk Utilization Time,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.mops,disk,"reads, writes",merged operations/s,Disk Merged Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.mops,disk,discards,merged operations/s,Disk Merged Discard Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.iotime,disk,"reads, writes",milliseconds/s,Disk Total I/O Time,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.iotime,disk,"discards, flushes",milliseconds/s,Disk Total I/O Time for Extended Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.await,disk,"reads, writes",milliseconds/operation,Average Completed I/O Operation Time,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.await,disk,"discards, flushes",milliseconds/operation,Average Completed Extended I/O Operation Time,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.avgsz,disk,"reads, writes",KiB/operation,Average Completed I/O Operation Bandwidth,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk_ext.avgsz,disk,discards,KiB/operation,Average Amount of Discarded Data,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.svctm,disk,svctm,milliseconds/operation,Average Service Time,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_cache_alloc,disk,"ununsed, dirty, clean, metadata, undefined",percentage,BCache Cache Allocations,stacked,,proc.plugin,/proc/diskstats
-disk.bcache_hit_ratio,disk,"5min, 1hour, 1day, ever",percentage,BCache Cache Hit Ratio,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_rates,disk,"congested, writeback",KiB/s,BCache Rates,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_size,disk,dirty,MiB,BCache Cache Sizes,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_usage,disk,avail,percentage,BCache Cache Usage,area,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_cache_read_races,disk,"races, errors",operations/s,BCache Cache Read Races,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache,disk,"hits, misses, collisions, readaheads",operations/s,BCache Cache I/O Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-disk.bcache_bypass,disk,"hits, misses",operations/s,BCache Cache Bypass I/O Operations,line,"device, mount_point, device_type",proc.plugin,/proc/diskstats
-md.health,,a dimension per md array,failed disks,Faulty Devices In MD,line,,proc.plugin,/proc/mdstat
-md.disks,md array,"inuse, down",disks,Disks Stats,stacked,"device, raid_level",proc.plugin,/proc/mdstat
-md.mismatch_cnt,md array,count,unsynchronized blocks,Mismatch Count,line,"device, raid_level",proc.plugin,/proc/mdstat
-md.status,md array,"check, resync, recovery, reshape",percent,Current Status,line,"device, raid_level",proc.plugin,/proc/mdstat
-md.expected_time_until_operation_finish,md array,finish_in,seconds,Approximate Time Until Finish,line,"device, raid_level",proc.plugin,/proc/mdstat
-md.operation_speed,md array,speed,KiB/s,Operation Speed,line,"device, raid_level",proc.plugin,/proc/mdstat
-md.nonredundant,md array,available,boolean,Nonredundant Array Availability,line,"device, raid_level",proc.plugin,/proc/mdstat
-system.net,,"received, sent",kilobits/s,Physical Network Interfaces Aggregated Bandwidth,area,,proc.plugin,/proc/net/dev
-net.net,network device,"received, sent",kilobits/s,Bandwidth,area,"interface_type, device",proc.plugin,/proc/net/dev
-net.speed,network device,speed,kilobits/s,Interface Speed,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.duplex,network device,"full, half, unknown",state,Interface Duplex State,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.operstate,network device,"up, down, notpresent, lowerlayerdown, testing, dormant, unknown",state,Interface Operational State,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.carrier,network device,"up, down",state,Interface Physical Link State,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.mtu,network device,mtu,octets,Interface MTU,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.packets,network device,"received, sent, multicast",packets/s,Packets,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.errors,network device,"inbound, outbound",errors/s,Interface Errors,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.drops,network device,"inbound, outbound",drops/s,Interface Drops,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.fifo,network device,"receive, transmit",errors,Interface FIFO Buffer Errors,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.compressed,network device,"received, sent",packets/s,Compressed Packets,line,"interface_type, device",proc.plugin,/proc/net/dev
-net.events,network device,"frames, collisions, carrier",events/s,Network Interface Events,line,"interface_type, device",proc.plugin,/proc/net/dev
-wireless.status,wireless device,status,status,Internal status reported by interface.,line,,proc.plugin,/proc/net/wireless
-wireless.link_quality,wireless device,link_quality,value,"Overall quality of the link. This is an aggregate value, and depends on the driver and hardware.",line,,proc.plugin,/proc/net/wireless
-wireless.signal_level,wireless device,signal_level,dBm,"The signal level is the wireless signal power level received by the wireless client. The closer the value is to 0, the stronger the signal.",line,,proc.plugin,/proc/net/wireless
-wireless.noise_level,wireless device,noise_level,dBm,"The noise level indicates the amount of background noise in your environment. The closer the value to 0, the greater the noise level.",line,,proc.plugin,/proc/net/wireless
-wireless.discarded_packets,wireless device,"nwid, crypt, frag, retry, misc",packets/s,"Packet discarded in the wireless adapter due to wireless specific problems.",line,,proc.plugin,/proc/net/wireless
-wireless.missed_beacons,wireless device,missed_beacons,frames/s,Number of missed beacons.,line,,proc.plugin,/proc/net/wireless
-ib.bytes,infiniband port,"Received, Sent",kilobits/s,Bandwidth usage,area,,proc.plugin,/sys/class/infiniband
-ib.packets,infiniband port,"Received, Sent, Mcast_rcvd, Mcast_sent, Ucast_rcvd, Ucast_sent",packets/s,Packets Statistics,area,,proc.plugin,/sys/class/infiniband
-ib.errors,infiniband port,"Pkts_malformated, Pkts_rcvd_discarded, Pkts_sent_discarded, Tick_Wait_to_send, Pkts_missed_resource, Buffer_overrun, Link_Downed, Link_recovered, Link_integrity_err, Link_minor_errors, Pkts_rcvd_with_EBP, Pkts_rcvd_discarded_by_switch, Pkts_sent_discarded_by_switch",errors/s,Error Counters,line,,proc.plugin,/sys/class/infiniband
-ib.hwerrors,infiniband port,"Duplicated_packets, Pkt_Seq_Num_gap, Ack_timer_expired, Drop_missing_buffer, Drop_out_of_sequence, NAK_sequence_rcvd, CQE_err_Req, CQE_err_Resp, CQE_Flushed_err_Req, CQE_Flushed_err_Resp, Remote_access_err_Req, Remote_access_err_Resp, Remote_invalid_req, Local_length_err_Resp, RNR_NAK_Packets, CNP_Pkts_ignored, RoCE_ICRC_Errors",errors/s,Hardware Errors,line,,proc.plugin,/sys/class/infiniband
-ib.hwpackets,infiniband port,"RoCEv2_Congestion_sent, RoCEv2_Congestion_rcvd, IB_Congestion_handled, ATOMIC_req_rcvd, Connection_req_rcvd, Read_req_rcvd, Write_req_rcvd, RoCE_retrans_adaptive, RoCE_retrans_timeout, RoCE_slow_restart, RoCE_slow_restart_congestion, RoCE_slow_restart_count",packets/s,Hardware Packets Statistics,line,,proc.plugin,/sys/class/infiniband
-system.ip,,"received, sent",kilobits/s,IP Bandwidth,area,,proc.plugin,/proc/net/netstat
-ip.inerrors,,"noroutes, truncated, checksum",packets/s,IP Input Errors,line,,proc.plugin,/proc/net/netstat
-ip.mcast,,"received, sent",kilobits/s,IP Multicast Bandwidth,area,,proc.plugin,/proc/net/netstat
-ip.bcast,,"received, sent",kilobits/s,IP Broadcast Bandwidth,area,,proc.plugin,/proc/net/netstat
-ip.mcastpkts,,"received, sent",packets/s,IP Multicast Packets,line,,proc.plugin,/proc/net/netstat
-ip.bcastpkts,,"received, sent",packets/s,IP Broadcast Packets,line,,proc.plugin,/proc/net/netstat
-ip.ecnpkts,,"CEP, NoECTP, ECTP0, ECTP1",packets/s,IP ECN Statistics,line,,proc.plugin,/proc/net/netstat
-ip.tcpmemorypressures,,pressures,events/s,TCP Memory Pressures,line,,proc.plugin,/proc/net/netstat
-ip.tcpconnaborts,,"baddata, userclosed, nomemory, timeout, linger, failed",connections/s,TCP Connection Aborts,line,,proc.plugin,/proc/net/netstat
-ip.tcpreorders,,"timestamp, sack, fack, reno",packets/s,TCP Reordered Packets by Detection Method,line,,proc.plugin,/proc/net/netstat
-ip.tcpofo,,"inqueue, dropped, merged, pruned",packets/s,TCP Out-Of-Order Queue,line,,proc.plugin,/proc/net/netstat
-ip.tcpsyncookies,,"received, sent, failed",packets/s,TCP SYN Cookies,line,,proc.plugin,/proc/net/netstat
-ip.tcp_syn_queue,,"drops, cookies",packets/s,TCP SYN Queue Issues,line,,proc.plugin,/proc/net/netstat
-ip.tcp_accept_queue,,"overflows, drops",packets/s,TCP Accept Queue Issues,line,,proc.plugin,/proc/net/netstat
-ipv4.packets,,"received, sent, forwarded, delivered",packets/s,IPv4 Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.fragsout,,"ok, failed, created",packets/s,IPv4 Fragments Sent,line,,proc.plugin,/proc/net/netstat
-ipv4.fragsin,,"ok, failed, all",packets/s,IPv4 Fragments Reassembly,line,,proc.plugin,/proc/net/netstat
-ipv4.errors,,"InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos",packets/s,IPv4 Errors,line,,proc.plugin,/proc/net/netstat
-ipv4.icmp,,"received, sent",packets/s,IPv4 ICMP Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.icmp_errors,,"InErrors, OutErrors, InCsumErrors",packets/s,IPv4 ICMP Errors,line,,proc.plugin,/proc/net/netstat
-ipv4.icmpmsg,,"InEchoReps, OutEchoReps, InDestUnreachs, OutDestUnreachs, InRedirects, OutRedirects, InEchos, OutEchos, InRouterAdvert, OutRouterAdvert, InRouterSelect, OutRouterSelect, InTimeExcds, OutTimeExcds, InParmProbs, OutParmProbs, InTimestamps, OutTimestamps, InTimestampReps, OutTimestampReps",packets/s,IPv4 ICMP Messages,line,,proc.plugin,/proc/net/netstat
-ipv4.tcpsock,,connections,active connections,IPv4 TCP Connections,line,,proc.plugin,/proc/net/netstat
-ipv4.tcppackets,,"received, sent",packets/s,IPv4 TCP Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.tcperrors,,"InErrs, InCsumErrors, RetransSegs",packets/s,IPv4 TCP Errors,line,,proc.plugin,/proc/net/netstat
-ipv4.tcpopens,,"active, passive",connections/s,IPv4 TCP Opens,line,,proc.plugin,/proc/net/netstat
-ipv4.tcphandshake,,"EstabResets, OutRsts, AttemptFails, SynRetrans",events/s,IPv4 TCP Handshake Issues,line,,proc.plugin,/proc/net/netstat
-ipv4.udppackets,,"received, sent",packets/s,IPv4 UDP Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.udperrors,,"RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti",events/s,IPv4 UDP Errors,line,,proc.plugin,/proc/net/netstat
-ipv4.udplite,,"received, sent",packets/s,IPv4 UDPLite Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.udplite_errors,,"RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti",packets/s,IPv4 UDPLite Errors,line,,proc.plugin,/proc/net/netstat
-system.ipv6,,"received, sent",kilobits/s,IPv6 Bandwidth,area,,proc.plugin,/proc/net/netstat
-system.ipv6,,"received, sent, forwarded, delivers",packets/s,IPv6 Packets,line,,proc.plugin,/proc/net/netstat
-ipv6.fragsout,,"ok, failed, all",packets/s,IPv6 Fragments Sent,line,,proc.plugin,/proc/net/netstat
-ipv6.fragsin,,"ok, failed, timeout, all",packets/s,IPv6 Fragments Reassembly,line,,proc.plugin,/proc/net/netstat
-ipv6.errors,,"InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InUnknownProtos, InTooBigErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes",packets/s,IPv6 Errors,line,,proc.plugin,/proc/net/netstat
-ipv6.udppackets,,"received, sent",packets/s,IPv6 UDP Packets,line,,proc.plugin,/proc/net/netstat
-ipv6.udperrors,,"RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti",events/s,IPv6 UDP Errors,line,,proc.plugin,/proc/net/netstat
-ipv6.udplitepackets,,"received, sent",packets/s,IPv6 UDPlite Packets,line,,proc.plugin,/proc/net/netstat
-ipv6.udpliteerrors,,"RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors",events/s,IPv6 UDP Lite Errors,line,,proc.plugin,/proc/net/netstat
-ipv6.mcast,,"received, sent",kilobits/s,IPv6 Multicast Bandwidth,area,,proc.plugin,/proc/net/netstat
-ipv6.bcast,,"received, sent",kilobits/s,IPv6 Broadcast Bandwidth,area,,proc.plugin,/proc/net/netstat
-ipv6.mcastpkts,,"received, sent",packets/s,IPv6 Multicast Packets,line,,proc.plugin,/proc/net/netstat
-ipv6.icmp,,"received, sent",messages/s,IPv6 ICMP Messages,line,,proc.plugin,/proc/net/netstat
-ipv6.icmpredir,,"received, sent",redirects/s,IPv6 ICMP Redirects,line,,proc.plugin,/proc/net/netstat
-ipv6.icmperrors,,"InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutPktTooBigs, OutTimeExcds, OutParmProblems",errors/s,IPv6 ICMP Errors,line,,proc.plugin,/proc/net/netstat
-ipv6.icmpechos,,"InEchos, OutEchos, InEchoReplies, OutEchoReplies",messages/s,IPv6 ICMP Echo,line,,proc.plugin,/proc/net/netstat
-ipv6.groupmemb,,"InQueries, OutQueries, InResponses, OutResponses, InReductions, OutReductions",messages/s,IPv6 ICMP Group Membership,line,,proc.plugin,/proc/net/netstat
-ipv6.icmprouter,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,IPv6 Router Messages,line,,proc.plugin,/proc/net/netstat
-ipv6.icmpneighbor,,"InSolicits, OutSolicits, InAdvertisements, OutAdvertisements",messages/s,IPv6 Neighbor Messages,line,,proc.plugin,/proc/net/netstat
-ipv6.icmpmldv2,,"received, sent",reports/s,IPv6 ICMP MLDv2 Reports,line,,proc.plugin,/proc/net/netstat
-ipv6.icmptypes,,"InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143",messages/s,IPv6 ICMP Types,line,,proc.plugin,/proc/net/netstat
-ipv6.ect,,"InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts",packets/s,IPv6 ECT Packets,line,,proc.plugin,/proc/net/netstat
-ipv6.ect,,"InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts",packets/s,IPv6 ECT Packets,line,,proc.plugin,/proc/net/netstat
-ipv4.sockstat_sockets,,used,sockets,IPv4 Sockets Used,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_tcp_sockets,,"alloc, orphan, inuse, timewait",sockets,IPv4 TCP Sockets,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_tcp_mem,,mem,KiB,IPv4 TCP Sockets Memory,area,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_udp_sockets,,inuse,sockets,IPv4 UDP Sockets,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_udp_mem,,mem,sockets,IPv4 UDP Sockets Memory,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_udplite_sockets,,inuse,sockets,IPv4 UDPLITE Sockets,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_raw_sockets,,inuse,sockets,IPv4 RAW Sockets,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_frag_sockets,,inuse,fragments,IPv4 FRAG Sockets,line,,proc.plugin,/proc/net/sockstat
-ipv4.sockstat_frag_mem,,mem,KiB,IPv4 FRAG Sockets Memory,area,,proc.plugin,/proc/net/sockstat
-ipv6.sockstat6_tcp_sockets,,inuse,sockets,IPv6 TCP Sockets,line,,proc.plugin,/proc/net/sockstat6
-ipv6.sockstat6_udp_sockets,,inuse,sockets,IPv6 UDP Sockets,line,,proc.plugin,/proc/net/sockstat6
-ipv6.sockstat6_udplite_sockets,,inuse,sockets,IPv6 UDPLITE Sockets,line,,proc.plugin,/proc/net/sockstat6
-ipv6.sockstat6_raw_sockets,,inuse,sockets,IPv6 RAW Sockets,line,,proc.plugin,/proc/net/sockstat6
-ipv6.sockstat6_frag_sockets,,inuse,fragments,IPv6 FRAG Sockets,line,,proc.plugin,/proc/net/sockstat6
-ipvs.sockets,,connections,connections/s,IPVS New Connections,line,,proc.plugin,/proc/net/ip_vs_stats
-ipvs.packets,,"received, sent",packets/s,IPVS Packets,line,,proc.plugin,/proc/net/ip_vs_stats
-ipvs.net,,"received, sent",kilobits/s,IPVS Bandwidth,area,,proc.plugin,/proc/net/ip_vs_stats
-nfs.net,,"udp, tcp",operations/s,NFS Client Network,stacked,,proc.plugin,/proc/net/rpc/nfs
-nfs.rpc,,"calls, retransmits, auth_refresh",calls/s,NFS Client Remote Procedure Calls Statistics,line,,proc.plugin,/proc/net/rpc/nfs
-nfs.proc2,,a dimension per proc2 call,calls/s,NFS v2 Client Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfs
-nfs.proc3,,a dimension per proc3 call,calls/s,NFS v3 Client Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfs
-nfs.proc4,,a dimension per proc4 call,calls/s,NFS v4 Client Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfs
-nfsd.readcache,,"hits, misses, nocache",reads/s,NFS Server Read Cache,stacked,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.filehandles,,stale,handles/s,NFS Server File Handles,line,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.io,,"read, write",kilobytes/s,NFS Server I/O,area,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.threads,,threads,threads,NFS Server Threads,line,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.net,,"udp, tcp",packets/s,NFS Server Network Statistics,line,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.rpc,,"calls, bad_format, bad_auth",calls/s,NFS Server Remote Procedure Calls Statistics,line,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.proc2,,a dimension per proc2 call,calls/s,NFS v2 Server Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.proc3,,a dimension per proc3 call,calls/s,NFS v3 Server Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.proc4,,a dimension per proc4 call,calls/s,NFS v4 Server Remote Procedure Calls,stacked,,proc.plugin,/proc/net/rpc/nfsd
-nfsd.proc4ops,,a dimension per proc4 operation,operations/s,NFS v4 Server Operations,stacked,,proc.plugin,/proc/net/rpc/nfsd
-sctp.established,,established,associations,SCTP current total number of established associations,line,,proc.plugin,/proc/net/sctp/snmp
-sctp.transitions,,"active, passive, aborted, shutdown",transitions/s,SCTP Association Transitions,line,,proc.plugin,/proc/net/sctp/snmp
-sctp.packets,,"received, sent",packets/s,SCTP Packets,line,,proc.plugin,/proc/net/sctp/snmp
-sctp.packet_errors,,"invalid, checksum",packets/s,SCTP Packet Errors,line,,proc.plugin,/proc/net/sctp/snmp
-sctp.fragmentation,,"reassembled, fragmented",packets/s,SCTP Fragmentation,line,,proc.plugin,/proc/net/sctp/snmp
-netfilter.conntrack_sockets,,connections,active connections,Connection Tracker Connections,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.conntrack_new,,"new, ignore, invalid",connections/s,Connection Tracker New Connections,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.conntrack_changes,,"inserted, deleted, delete_list",changes/s,Connection Tracker Changes,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.conntrack_expect,,"created, deleted, new",expectations/s,Connection Tracker Expectations,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.conntrack_search,,"searched, restarted, found",searches/s,Connection Tracker Searches,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.conntrack_errors,,"icmp_error, error_failed, drop, early_drop",events/s,Connection Tracker Errors,line,,proc.plugin,/proc/net/stat/nf_conntrack
-netfilter.synproxy_syn_received,,received,packets/s,SYNPROXY SYN Packets received,line,,proc.plugin,/proc/net/stat/synproxy
-netfilter.synproxy_conn_reopened,,reopened,connections/s,SYNPROXY Connections Reopened,line,,proc.plugin,/proc/net/stat/synproxy
-netfilter.synproxy_cookies,,"valid, invalid, retransmits",cookies/s,SYNPROXY TCP Cookies,line,,proc.plugin,/proc/net/stat/synproxy
-zfspool.state,zfs pool,"online, degraded, faulted, offline, removed, unavail, suspended",boolean,"ZFS pool state",line,pool,proc.plugin,/proc/spl/kstat/zfs
-zfs.arc_size,,"arcsz, target, min, max",MiB,"ZFS ARC Size",area,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.l2_size,,"actual, size",MiB,"ZFS L2 ARC Size",area,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.reads,,"arc, demand, prefetch, metadata, l2",reads/s,"ZFS Reads",area,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.bytes,,"read, write",KiB/s,"ZFS ARC L2 Read/Write Rate",area,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.hits,,"hits, misses",percentage,"ZFS ARC Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.hits_rate,,"hits, misses",events/s,"ZFS ARC Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.dhits,,"hits, misses",percentage,"ZFS Demand Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.dhits_rate,,"hits, misses",events/s,"ZFS Demand Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.phits,,"hits, misses",percentage,"ZFS Prefetch Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.phits_rate,,"hits, misses",events/s,"ZFS Prefetch Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.mhits,,"hits, misses",percentage,"ZFS Metadata Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.mhits_rate,,"hits, misses",events/s,"ZFS Metadata Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.l2hits,,"hits, misses",percentage,"ZFS L2 Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.l2hits_rate,,"hits, misses",events/s,"ZFS L2 Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.list_hits,,"mfu, mfu_ghost, mru, mru_ghost",hits/s,"ZFS List Hits",area,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.arc_size_breakdown,,"recent, frequent",percentage,"ZFS ARC Size Breakdown",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.memory_ops,,"direct, throttled, indirect",operations/s,"ZFS Memory Operations",line,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.important_ops,,"evict_skip, deleted, mutex_miss, hash_collisions",operations/s,"ZFS Important Operations",line,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.actual_hits,,"hits, misses",percentage,"ZFS Actual Cache Hits",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.actual_hits_rate,,"hits, misses",events/s,"ZFS Actual Cache Hits Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.demand_data_hits,,"hits, misses",percentage,"ZFS Data Demand Efficiency",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.demand_data_hits_rate,,"hits, misses",events/s,"ZFS Data Demand Efficiency Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.prefetch_data_hits,,"hits, misses",percentage,"ZFS Data Prefetch Efficiency",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.prefetch_data_hits_rate,,"hits, misses",events/s,"ZFS Data Prefetch Efficiency Rate",stacked,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.hash_elements,,"current, max",elements,"ZFS ARC Hash Elements",line,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-zfs.hash_chains,,"current, max",chains,"ZFS ARC Hash Chains",line,,proc.plugin,/proc/spl/kstat/zfs/arcstats
-btrfs.disk,btrfs filesystem,"unallocated, data_free, data_used, meta_free, meta_used, sys_free, sys_used",MiB,"BTRFS Physical Disk Allocation",stacked,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.data,btrfs filesystem,"free, used",MiB,"BTRFS Data Allocation",stacked,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.metadata,btrfs filesystem,"free, used, reserved",MiB,"BTRFS Metadata Allocation",stacked,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.system,btrfs filesystem,"free, used",MiB,"BTRFS System Allocation",stacked,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.commits,btrfs filesystem,commits,commits,"BTRFS Commits",line,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.commits_perc_time,btrfs filesystem,commits,percentage,"BTRFS Commits Time Share",line,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.commit_timings,btrfs filesystem,"last, max",ms,"BTRFS Commit Timings",line,"filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-btrfs.device_errors,btrfs device,"write_errs, read_errs, flush_errs, corruption_errs, generation_errs",errors,"BTRFS Device Errors",line,"device_id, filesystem_uuid, filesystem_label",proc.plugin,/sys/fs/btrfs
-powersupply.capacity,power device,capacity,percentage,Battery capacity,line,device,proc.plugin,/sys/class/power_supply
-powersupply.charge,power device,"empty_design, empty, now, full, full_design",Ah,Battery charge,line,device,proc.plugin,/sys/class/power_supply
-powersupply.energy,power device,"empty_design, empty, now, full, full_design",Wh,Battery energy,line,device,proc.plugin,/sys/class/power_supply
-powersupply.voltage,power device,"min_design, min, now, max, max_design",V,Power supply voltage,line,device,proc.plugin,/sys/class/power_supply
\ No newline at end of file
diff --git a/collectors/proc.plugin/multi_metadata.yaml b/collectors/proc.plugin/multi_metadata.yaml
deleted file mode 100644
index e78ec795c..000000000
--- a/collectors/proc.plugin/multi_metadata.yaml
+++ /dev/null
@@ -1,4716 +0,0 @@
-name: proc.plugin
-modules:
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/stat
- monitored_instance:
- name: proc /proc/stat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
- os: "linux"
- - name: 10min_cpu_iowait
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU iowait time over the last 10 minutes
- os: "linux"
- - name: 20min_steal_cpu
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU steal time over the last 20 minutes
- os: "linux"
- - name: 10min_cpu_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf
- metric: system.cpu
- info: average CPU utilization over the last 10 minutes (excluding nice)
- os: "freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.cpu
- description: Total CPU utilization
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: guest_nice
- - name: guest
- - name: steal
- - name: softirq
- - name: irq
- - name: user
- - name: system
- - name: nice
- - name: iowait
- - name: idle
- - name: system.intr
- description: CPU Interrupts
- unit: "interrupts/s"
- chart_type: line
- dimensions:
- - name: interrupts
- - name: system.ctxt
- description: CPU Context Switches
- unit: "context switches/s"
- chart_type: line
- dimensions:
- - name: switches
- - name: system.forks
- description: Started Processes
- unit: "processes/s"
- chart_type: line
- dimensions:
- - name: started
- - name: system.processes
- description: System Processes
- unit: "processes"
- chart_type: line
- dimensions:
- - name: running
- - name: blocked
- - name: cpu.core_throttling
- description: Core Thermal Throttling Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: a dimension per cpu core
- - name: cpu.package_throttling
- description: Package Thermal Throttling Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: a dimension per package
- - name: cpu.cpufreq
- description: Current CPU Frequency
- unit: "MHz"
- chart_type: line
- dimensions:
- - name: a dimension per cpu core
- - name: cpu core
- description: ""
- labels:
- - name: cpu
- description: TBD
- metrics:
- - name: cpu.cpu
- description: Core utilization
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: guest_nice
- - name: guest
- - name: steal
- - name: softirq
- - name: irq
- - name: user
- - name: system
- - name: nice
- - name: iowait
- - name: idle
- - name: cpuidle.cpu_cstate_residency_time
- description: C-state residency time
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: a dimension per c-state
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/sys/kernel/random/entropy_avail
- monitored_instance:
- name: proc /proc/sys/kernel/random/entropy_avail
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: lowest_entropy
- link: https://github.com/netdata/netdata/blob/master/health/health.d/entropy.conf
- metric: system.entropy
- info: minimum number of entries in the random numbers pool in the last 5 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.entropy
- description: Available Entropy
- unit: "entropy"
- chart_type: line
- dimensions:
- - name: entropy
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/uptime
- monitored_instance:
- name: proc /proc/uptime
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.uptime
- description: System Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/vmstat
- monitored_instance:
- name: proc /proc/vmstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 30min_ram_swapped_out
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swapio
- info: percentage of the system RAM swapped in the last 30 minutes
- os: "linux freebsd"
- - name: oom_kill
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: mem.oom_kill
- info: number of out of memory kills in the last 30 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.swapio
- description: Swap I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: system.pgpgio
- description: Memory Paged from/to disk
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: system.pgfaults
- description: Memory Page Faults
- unit: "faults/s"
- chart_type: line
- dimensions:
- - name: minor
- - name: major
- - name: mem.balloon
- description: Memory Ballooning Operations
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: inflate
- - name: deflate
- - name: migrate
- - name: mem.zswapio
- description: ZSwap I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: mem.ksm_cow
- description: KSM Copy On Write Operations
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: swapin
- - name: write
- - name: mem.thp_faults
- description: Transparent Huge Page Fault Allocations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: alloc
- - name: fallback
- - name: fallback_charge
- - name: mem.thp_file
- description: Transparent Huge Page File Allocations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: alloc
- - name: fallback
- - name: mapped
- - name: fallback_charge
- - name: mem.thp_zero
- description: Transparent Huge Zero Page Allocations
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: alloc
- - name: failed
- - name: mem.thp_collapse
- description: Transparent Huge Pages Collapsed by khugepaged
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: alloc
- - name: failed
- - name: mem.thp_split
- description: Transparent Huge Page Splits
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: split
- - name: failed
- - name: split_pmd
- - name: split_deferred
- - name: mem.thp_swapout
- description: Transparent Huge Pages Swap Out
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: swapout
- - name: fallback
- - name: mem.thp_compact
- description: Transparent Huge Pages Compaction
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: success
- - name: fail
- - name: stall
- - name: mem.oom_kill
- description: Out of Memory Kills
- unit: "kills/s"
- chart_type: line
- dimensions:
- - name: kills
- - name: mem.numa
- description: NUMA events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: local
- - name: foreign
- - name: interleave
- - name: other
- - name: pte_updates
- - name: huge_pte_updates
- - name: hint_faults
- - name: hint_faults_local
- - name: pages_migrated
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/interrupts
- monitored_instance:
- name: proc /proc/interrupts
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.interrupts
- description: System interrupts
- unit: "interrupts/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per device
- - name: cpu core
- description: ""
- labels:
- - name: cpu
- description: TBD
- metrics:
- - name: cpu.interrupts
- description: CPU interrupts
- unit: "interrupts/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per device
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/loadavg
- monitored_instance:
- name: proc /proc/loadavg
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: load_cpu_number
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: number of active CPU cores in the system
- os: "linux"
- - name: load_average_15
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system fifteen-minute load average
- os: "linux"
- - name: load_average_5
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system five-minute load average
- os: "linux"
- - name: load_average_1
- link: https://github.com/netdata/netdata/blob/master/health/health.d/load.conf
- metric: system.load
- info: system one-minute load average
- os: "linux"
- - name: active_processes
- link: https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf
- metric: system.active_processes
- info: system process IDs (PID) space utilization
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.load
- description: System Load Average
- unit: "load"
- chart_type: line
- dimensions:
- - name: load1
- - name: load5
- - name: load15
- - name: system.active_processes
- description: System Active Processes
- unit: "processes"
- chart_type: line
- dimensions:
- - name: active
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/pressure
- monitored_instance:
- name: proc /proc/pressure
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.cpu_some_pressure
- description: CPU some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.cpu_some_pressure_stall_time
- description: CPU some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: system.cpu_full_pressure
- description: CPU full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.cpu_full_pressure_stall_time
- description: CPU full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: system.memory_some_pressure
- description: Memory some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.memory_some_pressure_stall_time
- description: Memory some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: system.memory_full_pressure
- description: Memory full pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.memory_full_pressure_stall_time
- description: Memory full pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: system.io_some_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.io_some_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - name: system.io_full_pressure
- description: I/O some pressure
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: some10
- - name: some60
- - name: some300
- - name: system.io_full_pressure_stall_time
- description: I/O some pressure stall time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: time
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/softirqs
- monitored_instance:
- name: proc /proc/softirqs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.softirqs
- description: System softirqs
- unit: "softirqs/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per softirq
- - name: cpu core
- description: ""
- labels:
- - name: cpu
- description: TBD
- metrics:
- - name: cpu.softirqs
- description: CPU softirqs
- unit: "softirqs/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per softirq
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/softnet_stat
- monitored_instance:
- name: proc /proc/net/softnet_stat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1min_netdev_backlog_exceeded
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog
- os: "linux"
- - name: 1min_netdev_budget_ran_outs
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets)
- os: "linux"
- - name: 10min_netisr_backlog_exceeded
- link: https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf
- metric: system.softnet_stat
- info: average number of drops in the last minute due to exceeded sysctl net.route.netisr_maxqlen (this can be a cause for dropped packets)
- os: "freebsd"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.softnet_stat
- description: System softnet_stat
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: processed
- - name: dropped
- - name: squeezed
- - name: received_rps
- - name: flow_limit_count
- - name: cpu core
- description: ""
- labels: []
- metrics:
- - name: cpu.softnet_stat
- description: CPU softnet_stat
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: processed
- - name: dropped
- - name: squeezed
- - name: received_rps
- - name: flow_limit_count
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/meminfo
- monitored_instance:
- name: proc /proc/meminfo
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "linux"
- - name: ram_in_use
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: system.ram
- info: system memory utilization
- os: "freebsd"
- - name: ram_available
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: mem.available
- info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- os: "linux"
- - name: ram_available
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf
- metric: mem.available
- info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- os: "freebsd"
- - name: used_swap
- link: https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf
- metric: system.swap
- info: swap memory utilization
- os: "linux freebsd"
- - name: 1hour_memory_hw_corrupted
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
- metric: mem.hwcorrupt
- info: amount of memory corrupted due to a hardware failure
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ram
- description: System RAM
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: cached
- - name: buffers
- - name: mem.available
- description: Available RAM for applications
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: avail
- - name: system.swap
- description: System Swap
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: mem.hwcorrupt
- description: Corrupted Memory detected by ECC
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: HardwareCorrupted
- - name: mem.commited
- description: Committed (Allocated) Memory
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: Commited_AS
- - name: mem.writeback
- description: Writeback Memory
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: Dirty
- - name: Writeback
- - name: FuseWriteback
- - name: NfsWriteback
- - name: Bounce
- - name: mem.kernel
- description: Memory Used by Kernel
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: Slab
- - name: KernelStack
- - name: PageTables
- - name: VmallocUsed
- - name: Percpu
- - name: mem.slab
- description: Reclaimable Kernel Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: reclaimable
- - name: unreclaimable
- - name: mem.hugepage
- description: Dedicated HugePages Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: surplus
- - name: reserved
- - name: mem.transparent_hugepages
- description: Transparent HugePages Memory
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: anonymous
- - name: shmem
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/pagetypeinfo
- monitored_instance:
- name: proc /proc/pagetypeinfo
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mem.pagetype_global
- description: System orders available
- unit: "B"
- chart_type: stacked
- dimensions:
- - name: a dimension per pagesize
- - name: node, zone, type
- description: ""
- labels:
- - name: node_id
- description: TBD
- - name: node_zone
- description: TBD
- - name: node_type
- description: TBD
- metrics:
- - name: mem.pagetype
- description: pagetype_Node{node}_{zone}_{type}
- unit: "B"
- chart_type: stacked
- dimensions:
- - name: a dimension per pagesize
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/devices/system/edac/mc
- monitored_instance:
- name: proc /sys/devices/system/edac/mc
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1hour_ecc_memory_correctable
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
- metric: mem.ecc_ce
- info: number of ECC correctable errors in the last 10 minutes
- os: "linux"
- - name: 1hour_ecc_memory_uncorrectable
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf
- metric: mem.ecc_ue
- info: number of ECC uncorrectable errors in the last 10 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mem.ecc_ce
- description: ECC Memory Correctable Errors
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per mem controller
- - name: mem.ecc_ue
- description: ECC Memory Uncorrectable Errors
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per mem controller
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/devices/system/node
- monitored_instance:
- name: proc /sys/devices/system/node
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: numa node
- description: ""
- labels:
- - name: numa_node
- description: TBD
- metrics:
- - name: mem.numa_nodes
- description: NUMA events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: hit
- - name: miss
- - name: local
- - name: foreign
- - name: interleave
- - name: other
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/kernel/mm/ksm
- monitored_instance:
- name: proc /sys/kernel/mm/ksm
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: mem.ksm
- description: Kernel Same Page Merging
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: shared
- - name: unshared
- - name: sharing
- - name: volatile
- - name: mem.ksm_savings
- description: Kernel Same Page Merging Savings
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: savings
- - name: offered
- - name: mem.ksm_ratios
- description: Kernel Same Page Merging Effectiveness
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: savings
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/block/zram
- monitored_instance:
- name: proc /sys/block/zram
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: zram device
- description: ""
- labels:
- - name: device
- description: TBD
- metrics:
- - name: mem.zram_usage
- description: ZRAM Memory Usage
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: compressed
- - name: metadata
- - name: mem.zram_savings
- description: ZRAM Memory Savings
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: savings
- - name: original
- - name: mem.zram_ratio
- description: ZRAM Compression Ratio (original to compressed)
- unit: "ratio"
- chart_type: line
- dimensions:
- - name: ratio
- - name: mem.zram_efficiency
- description: ZRAM Efficiency
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: percent
- - meta:
- plugin_name: proc.plugin
- module_name: ipc
- monitored_instance:
- name: proc ipc
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: semaphores_used
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
- metric: system.ipc_semaphores
- info: IPC semaphore utilization
- os: "linux"
- - name: semaphore_arrays_used
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf
- metric: system.ipc_semaphore_arrays
- info: IPC semaphore arrays utilization
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ipc_semaphores
- description: IPC Semaphores
- unit: "semaphores"
- chart_type: area
- dimensions:
- - name: semaphores
- - name: system.ipc_semaphore_arrays
- description: IPC Semaphore Arrays
- unit: "arrays"
- chart_type: area
- dimensions:
- - name: arrays
- - name: system.message_queue_message
- description: IPC Message Queue Number of Messages
- unit: "messages"
- chart_type: stacked
- dimensions:
- - name: a dimension per queue
- - name: system.message_queue_bytes
- description: IPC Message Queue Used Bytes
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: a dimension per queue
- - name: system.shared_memory_segments
- description: IPC Shared Memory Number of Segments
- unit: "segments"
- chart_type: stacked
- dimensions:
- - name: segments
- - name: system.shared_memory_bytes
- description: IPC Shared Memory Used Bytes
- unit: "bytes"
- chart_type: stacked
- dimensions:
- - name: bytes
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/diskstats
- monitored_instance:
- name: proc /proc/diskstats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 10min_disk_backlog
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.backlog
- info: average backlog size of the ${label:device} disk over the last 10 minutes
- os: "linux"
- - name: 10min_disk_utilization
- link: https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf
- metric: disk.util
- info: average percentage of time ${label:device} disk was busy over the last 10 minutes
- os: "linux freebsd"
- - name: bcache_cache_dirty
- link: https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf
- metric: disk.bcache_cache_alloc
- info: percentage of cache space used for dirty data and metadata (this usually means your SSD cache is too small)
- - name: bcache_cache_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf
- metric: disk.bcache_cache_read_races
- info: number of times data was read from the cache, the bucket was reused and invalidated in the last 10 minutes (when this occurs the data is reread from the backing device)
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.io
- description: Disk I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: disk
- description: ""
- labels:
- - name: device
- description: TBD
- - name: mount_point
- description: TBD
- - name: device_type
- description: TBD
- metrics:
- - name: disk.io
- description: Disk I/O Bandwidth
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.io
- description: Amount of Discarded Data
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: discards
- - name: disk.ops
- description: Disk Completed I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.ops
- description: Disk Completed Extended I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: discards
- - name: flushes
- - name: disk.qops
- description: Disk Current I/O Operations
- unit: "operations"
- chart_type: line
- dimensions:
- - name: operations
- - name: disk.backlog
- description: Disk Backlog
- unit: "milliseconds"
- chart_type: area
- dimensions:
- - name: backlog
- - name: disk.busy
- description: Disk Busy Time
- unit: "milliseconds"
- chart_type: area
- dimensions:
- - name: busy
- - name: disk.util
- description: Disk Utilization Time
- unit: "% of time working"
- chart_type: area
- dimensions:
- - name: utilization
- - name: disk.mops
- description: Disk Merged Operations
- unit: "merged operations/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.mops
- description: Disk Merged Discard Operations
- unit: "merged operations/s"
- chart_type: line
- dimensions:
- - name: discards
- - name: disk.iotime
- description: Disk Total I/O Time
- unit: "milliseconds/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.iotime
- description: Disk Total I/O Time for Extended Operations
- unit: "milliseconds/s"
- chart_type: line
- dimensions:
- - name: discards
- - name: flushes
- - name: disk.await
- description: Average Completed I/O Operation Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.await
- description: Average Completed Extended I/O Operation Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: discards
- - name: flushes
- - name: disk.avgsz
- description: Average Completed I/O Operation Bandwidth
- unit: "KiB/operation"
- chart_type: area
- dimensions:
- - name: reads
- - name: writes
- - name: disk_ext.avgsz
- description: Average Amount of Discarded Data
- unit: "KiB/operation"
- chart_type: area
- dimensions:
- - name: discards
- - name: disk.svctm
- description: Average Service Time
- unit: "milliseconds/operation"
- chart_type: line
- dimensions:
- - name: svctm
- - name: disk.bcache_cache_alloc
- description: BCache Cache Allocations
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: ununsed
- - name: dirty
- - name: clean
- - name: metadata
- - name: undefined
- - name: disk.bcache_hit_ratio
- description: BCache Cache Hit Ratio
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: 5min
- - name: 1hour
- - name: 1day
- - name: ever
- - name: disk.bcache_rates
- description: BCache Rates
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: congested
- - name: writeback
- - name: disk.bcache_size
- description: BCache Cache Sizes
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: dirty
- - name: disk.bcache_usage
- description: BCache Cache Usage
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: avail
- - name: disk.bcache_cache_read_races
- description: BCache Cache Read Races
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: races
- - name: errors
- - name: disk.bcache
- description: BCache Cache I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: hits
- - name: misses
- - name: collisions
- - name: readaheads
- - name: disk.bcache_bypass
- description: BCache Cache Bypass I/O Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: hits
- - name: misses
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/mdstat
- monitored_instance:
- name: proc /proc/mdstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: mdstat_last_collected
- link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
- metric: md.disks
- info: number of seconds since the last successful data collection
- - name: mdstat_disks
- link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
- metric: md.disks
- info: number of devices in the down state for the ${label:device} ${label:raid_level} array. Any number > 0 indicates that the array is degraded.
- - name: mdstat_mismatch_cnt
- link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
- metric: md.mismatch_cnt
- info: number of unsynchronized blocks for the ${label:device} ${label:raid_level} array
- - name: mdstat_nonredundant_last_collected
- link: https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf
- metric: md.nonredundant
- info: number of seconds since the last successful data collection
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: md.health
- description: Faulty Devices In MD
- unit: "failed disks"
- chart_type: line
- dimensions:
- - name: a dimension per md array
- - name: md array
- description: ""
- labels:
- - name: device
- description: TBD
- - name: raid_level
- description: TBD
- metrics:
- - name: md.disks
- description: Disks Stats
- unit: "disks"
- chart_type: stacked
- dimensions:
- - name: inuse
- - name: down
- - name: md.mismatch_cnt
- description: Mismatch Count
- unit: "unsynchronized blocks"
- chart_type: line
- dimensions:
- - name: count
- - name: md.status
- description: Current Status
- unit: "percent"
- chart_type: line
- dimensions:
- - name: check
- - name: resync
- - name: recovery
- - name: reshape
- - name: md.expected_time_until_operation_finish
- description: Approximate Time Until Finish
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: finish_in
- - name: md.operation_speed
- description: Operation Speed
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: speed
- - name: md.nonredundant
- description: Nonredundant Array Availability
- unit: "boolean"
- chart_type: line
- dimensions:
- - name: available
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/dev
- monitored_instance:
- name: proc /proc/net/dev
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: interface_speed
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: network interface ${label:device} current speed
- os: "*"
- - name: 1m_received_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average inbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: 1m_sent_traffic_overflow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.net
- info: average outbound utilization for the network interface ${label:device} over the last minute
- os: "linux"
- - name: inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_inbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: wifi_outbound_packets_dropped_ratio
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- os: "linux"
- - name: 1m_received_packets_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: average number of packets received by the network interface ${label:device} over the last minute
- os: "linux freebsd"
- - name: 10s_received_packets_storm
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.packets
- info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute
- os: "linux freebsd"
- - name: interface_inbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of inbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: interface_outbound_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.errors
- info: number of outbound errors for the network interface ${label:device} in the last 10 minutes
- os: "freebsd"
- - name: inbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- - name: outbound_packets_dropped
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.drops
- info: number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- - name: 10min_fifo_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/net.conf
- metric: net.fifo
- info: number of FIFO errors for the network interface ${label:device} in the last 10 minutes
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.net
- description: Physical Network Interfaces Aggregated Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: network device
- description: ""
- labels:
- - name: interface_type
- description: TBD
- - name: device
- description: TBD
- metrics:
- - name: net.net
- description: Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: net.speed
- description: Interface Speed
- unit: "kilobits/s"
- chart_type: line
- dimensions:
- - name: speed
- - name: net.duplex
- description: Interface Duplex State
- unit: "state"
- chart_type: line
- dimensions:
- - name: full
- - name: half
- - name: unknown
- - name: net.operstate
- description: Interface Operational State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: notpresent
- - name: lowerlayerdown
- - name: testing
- - name: dormant
- - name: unknown
- - name: net.carrier
- description: Interface Physical Link State
- unit: "state"
- chart_type: line
- dimensions:
- - name: up
- - name: down
- - name: net.mtu
- description: Interface MTU
- unit: "octets"
- chart_type: line
- dimensions:
- - name: mtu
- - name: net.packets
- description: Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: multicast
- - name: net.errors
- description: Interface Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: net.drops
- description: Interface Drops
- unit: "drops/s"
- chart_type: line
- dimensions:
- - name: inbound
- - name: outbound
- - name: net.fifo
- description: Interface FIFO Buffer Errors
- unit: "errors"
- chart_type: line
- dimensions:
- - name: receive
- - name: transmit
- - name: net.compressed
- description: Compressed Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: net.events
- description: Network Interface Events
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: frames
- - name: collisions
- - name: carrier
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/wireless
- monitored_instance:
- name: proc /proc/net/wireless
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: wireless device
- description: ""
- labels: []
- metrics:
- - name: wireless.status
- description: Internal status reported by interface.
- unit: "status"
- chart_type: line
- dimensions:
- - name: status
- - name: wireless.link_quality
- description: Overall quality of the link. This is an aggregate value, and depends on the driver and hardware.
- unit: "value"
- chart_type: line
- dimensions:
- - name: link_quality
- - name: wireless.signal_level
- description: The signal level is the wireless signal power level received by the wireless client. The closer the value is to 0, the stronger the signal.
- unit: "dBm"
- chart_type: line
- dimensions:
- - name: signal_level
- - name: wireless.noise_level
- description: The noise level indicates the amount of background noise in your environment. The closer the value to 0, the greater the noise level.
- unit: "dBm"
- chart_type: line
- dimensions:
- - name: noise_level
- - name: wireless.discarded_packets
- description: Packet discarded in the wireless adapter due to wireless specific problems.
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: nwid
- - name: crypt
- - name: frag
- - name: retry
- - name: misc
- - name: wireless.missed_beacons
- description: Number of missed beacons.
- unit: "frames/s"
- chart_type: line
- dimensions:
- - name: missed_beacons
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/class/infiniband
- monitored_instance:
- name: proc /sys/class/infiniband
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: infiniband port
- description: ""
- labels: []
- metrics:
- - name: ib.bytes
- description: Bandwidth usage
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: Received
- - name: Sent
- - name: ib.packets
- description: Packets Statistics
- unit: "packets/s"
- chart_type: area
- dimensions:
- - name: Received
- - name: Sent
- - name: Mcast_rcvd
- - name: Mcast_sent
- - name: Ucast_rcvd
- - name: Ucast_sent
- - name: ib.errors
- description: Error Counters
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: Pkts_malformated
- - name: Pkts_rcvd_discarded
- - name: Pkts_sent_discarded
- - name: Tick_Wait_to_send
- - name: Pkts_missed_resource
- - name: Buffer_overrun
- - name: Link_Downed
- - name: Link_recovered
- - name: Link_integrity_err
- - name: Link_minor_errors
- - name: Pkts_rcvd_with_EBP
- - name: Pkts_rcvd_discarded_by_switch
- - name: Pkts_sent_discarded_by_switch
- - name: ib.hwerrors
- description: Hardware Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: Duplicated_packets
- - name: Pkt_Seq_Num_gap
- - name: Ack_timer_expired
- - name: Drop_missing_buffer
- - name: Drop_out_of_sequence
- - name: NAK_sequence_rcvd
- - name: CQE_err_Req
- - name: CQE_err_Resp
- - name: CQE_Flushed_err_Req
- - name: CQE_Flushed_err_Resp
- - name: Remote_access_err_Req
- - name: Remote_access_err_Resp
- - name: Remote_invalid_req
- - name: Local_length_err_Resp
- - name: RNR_NAK_Packets
- - name: CNP_Pkts_ignored
- - name: RoCE_ICRC_Errors
- - name: ib.hwpackets
- description: Hardware Packets Statistics
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: RoCEv2_Congestion_sent
- - name: RoCEv2_Congestion_rcvd
- - name: IB_Congestion_handled
- - name: ATOMIC_req_rcvd
- - name: Connection_req_rcvd
- - name: Read_req_rcvd
- - name: Write_req_rcvd
- - name: RoCE_retrans_adaptive
- - name: RoCE_retrans_timeout
- - name: RoCE_slow_restart
- - name: RoCE_slow_restart_congestion
- - name: RoCE_slow_restart_count
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/netstat
- monitored_instance:
- name: proc /proc/net/netstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: 1m_tcp_syn_queue_drops
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
- metric: ip.tcp_syn_queue
- info: average number of SYN requests was dropped due to the full TCP SYN queue over the last minute (SYN cookies were not enabled)
- os: "linux"
- - name: 1m_tcp_syn_queue_cookies
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
- metric: ip.tcp_syn_queue
- info: average number of sent SYN cookies due to the full TCP SYN queue over the last minute
- os: "linux"
- - name: 1m_tcp_accept_queue_overflows
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
- metric: ip.tcp_accept_queue
- info: average number of overflows in the TCP accept queue over the last minute
- os: "linux"
- - name: 1m_tcp_accept_queue_drops
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf
- metric: ip.tcp_accept_queue
- info: average number of dropped packets in the TCP accept queue over the last minute
- os: "linux"
- - name: tcp_connections
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf
- metric: ipv4.tcpsock
- info: IPv4 TCP connections utilization
- os: "linux"
- - name: 1m_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last minute
- os: "linux"
- - name: 10s_ipv4_tcp_resets_sent
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux"
- - name: 1m_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last minute
- os: "linux freebsd"
- - name: 10s_ipv4_tcp_resets_received
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf
- metric: ipv4.tcphandshake
- info: average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm.
- os: "linux freebsd"
- - name: 1m_ipv4_udp_receive_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP receive buffer errors over the last minute
- os: "linux freebsd"
- - name: 1m_ipv4_udp_send_buffer_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf
- metric: ipv4.udperrors
- info: average number of UDP send buffer errors over the last minute
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: system.ip
- description: IP Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ip.inerrors
- description: IP Input Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: noroutes
- - name: truncated
- - name: checksum
- - name: ip.mcast
- description: IP Multicast Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ip.bcast
- description: IP Broadcast Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ip.mcastpkts
- description: IP Multicast Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ip.bcastpkts
- description: IP Broadcast Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ip.ecnpkts
- description: IP ECN Statistics
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: CEP
- - name: NoECTP
- - name: ECTP0
- - name: ECTP1
- - name: ip.tcpmemorypressures
- description: TCP Memory Pressures
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: pressures
- - name: ip.tcpconnaborts
- description: TCP Connection Aborts
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: baddata
- - name: userclosed
- - name: nomemory
- - name: timeout
- - name: linger
- - name: failed
- - name: ip.tcpreorders
- description: TCP Reordered Packets by Detection Method
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: timestamp
- - name: sack
- - name: fack
- - name: reno
- - name: ip.tcpofo
- description: TCP Out-Of-Order Queue
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: inqueue
- - name: dropped
- - name: merged
- - name: pruned
- - name: ip.tcpsyncookies
- description: TCP SYN Cookies
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: failed
- - name: ip.tcp_syn_queue
- description: TCP SYN Queue Issues
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: drops
- - name: cookies
- - name: ip.tcp_accept_queue
- description: TCP Accept Queue Issues
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: overflows
- - name: drops
- - name: ipv4.packets
- description: IPv4 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivered
- - name: ipv4.fragsout
- description: IPv4 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: created
- - name: ipv4.fragsin
- description: IPv4 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv4.errors
- description: IPv4 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: OutNoRoutes
- - name: InAddrErrors
- - name: InUnknownProtos
- - name: ipv4.icmp
- description: IPv4 ICMP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.icmp_errors
- description: IPv4 ICMP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: ipv4.icmpmsg
- description: IPv4 ICMP Messages
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InEchoReps
- - name: OutEchoReps
- - name: InDestUnreachs
- - name: OutDestUnreachs
- - name: InRedirects
- - name: OutRedirects
- - name: InEchos
- - name: OutEchos
- - name: InRouterAdvert
- - name: OutRouterAdvert
- - name: InRouterSelect
- - name: OutRouterSelect
- - name: InTimeExcds
- - name: OutTimeExcds
- - name: InParmProbs
- - name: OutParmProbs
- - name: InTimestamps
- - name: OutTimestamps
- - name: InTimestampReps
- - name: OutTimestampReps
- - name: ipv4.tcpsock
- description: IPv4 TCP Connections
- unit: "active connections"
- chart_type: line
- dimensions:
- - name: connections
- - name: ipv4.tcppackets
- description: IPv4 TCP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.tcperrors
- description: IPv4 TCP Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InErrs
- - name: InCsumErrors
- - name: RetransSegs
- - name: ipv4.tcpopens
- description: IPv4 TCP Opens
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: active
- - name: passive
- - name: ipv4.tcphandshake
- description: IPv4 TCP Handshake Issues
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: EstabResets
- - name: OutRsts
- - name: AttemptFails
- - name: SynRetrans
- - name: ipv4.udppackets
- description: IPv4 UDP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.udperrors
- description: IPv4 UDP Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: RcvbufErrors
- - name: SndbufErrors
- - name: InErrors
- - name: NoPorts
- - name: InCsumErrors
- - name: IgnoredMulti
- - name: ipv4.udplite
- description: IPv4 UDPLite Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv4.udplite_errors
- description: IPv4 UDPLite Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: RcvbufErrors
- - name: SndbufErrors
- - name: InErrors
- - name: NoPorts
- - name: InCsumErrors
- - name: IgnoredMulti
- - name: system.ipv6
- description: IPv6 Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: system.ipv6
- description: IPv6 Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: forwarded
- - name: delivers
- - name: ipv6.fragsout
- description: IPv6 Fragments Sent
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: all
- - name: ipv6.fragsin
- description: IPv6 Fragments Reassembly
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: ok
- - name: failed
- - name: timeout
- - name: all
- - name: ipv6.errors
- description: IPv6 Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InDiscards
- - name: OutDiscards
- - name: InHdrErrors
- - name: InAddrErrors
- - name: InUnknownProtos
- - name: InTooBigErrors
- - name: InTruncatedPkts
- - name: InNoRoutes
- - name: OutNoRoutes
- - name: ipv6.udppackets
- description: IPv6 UDP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.udperrors
- description: IPv6 UDP Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: RcvbufErrors
- - name: SndbufErrors
- - name: InErrors
- - name: NoPorts
- - name: InCsumErrors
- - name: IgnoredMulti
- - name: ipv6.udplitepackets
- description: IPv6 UDPlite Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.udpliteerrors
- description: IPv6 UDP Lite Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: RcvbufErrors
- - name: SndbufErrors
- - name: InErrors
- - name: NoPorts
- - name: InCsumErrors
- - name: ipv6.mcast
- description: IPv6 Multicast Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.bcast
- description: IPv6 Broadcast Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.mcastpkts
- description: IPv6 Multicast Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmp
- description: IPv6 ICMP Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmpredir
- description: IPv6 ICMP Redirects
- unit: "redirects/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmperrors
- description: IPv6 ICMP Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: InErrors
- - name: OutErrors
- - name: InCsumErrors
- - name: InDestUnreachs
- - name: InPktTooBigs
- - name: InTimeExcds
- - name: InParmProblems
- - name: OutDestUnreachs
- - name: OutPktTooBigs
- - name: OutTimeExcds
- - name: OutParmProblems
- - name: ipv6.icmpechos
- description: IPv6 ICMP Echo
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InEchos
- - name: OutEchos
- - name: InEchoReplies
- - name: OutEchoReplies
- - name: ipv6.groupmemb
- description: IPv6 ICMP Group Membership
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InQueries
- - name: OutQueries
- - name: InResponses
- - name: OutResponses
- - name: InReductions
- - name: OutReductions
- - name: ipv6.icmprouter
- description: IPv6 Router Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmpneighbor
- description: IPv6 Neighbor Messages
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InSolicits
- - name: OutSolicits
- - name: InAdvertisements
- - name: OutAdvertisements
- - name: ipv6.icmpmldv2
- description: IPv6 ICMP MLDv2 Reports
- unit: "reports/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipv6.icmptypes
- description: IPv6 ICMP Types
- unit: "messages/s"
- chart_type: line
- dimensions:
- - name: InType1
- - name: InType128
- - name: InType129
- - name: InType136
- - name: OutType1
- - name: OutType128
- - name: OutType129
- - name: OutType133
- - name: OutType135
- - name: OutType143
- - name: ipv6.ect
- description: IPv6 ECT Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InNoECTPkts
- - name: InECT1Pkts
- - name: InECT0Pkts
- - name: InCEPkts
- - name: ipv6.ect
- description: IPv6 ECT Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: InNoECTPkts
- - name: InECT1Pkts
- - name: InECT0Pkts
- - name: InCEPkts
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/sockstat
- monitored_instance:
- name: proc /proc/net/sockstat
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: tcp_orphans
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_orphans.conf
- metric: ipv4.sockstat_tcp_sockets
- info: orphan IPv4 TCP sockets utilization
- os: "linux"
- - name: tcp_memory
- link: https://github.com/netdata/netdata/blob/master/health/health.d/tcp_mem.conf
- metric: ipv4.sockstat_tcp_mem
- info: TCP memory utilization
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv4.sockstat_sockets
- description: IPv4 Sockets Used
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: used
- - name: ipv4.sockstat_tcp_sockets
- description: IPv4 TCP Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: alloc
- - name: orphan
- - name: inuse
- - name: timewait
- - name: ipv4.sockstat_tcp_mem
- description: IPv4 TCP Sockets Memory
- unit: "KiB"
- chart_type: area
- dimensions:
- - name: mem
- - name: ipv4.sockstat_udp_sockets
- description: IPv4 UDP Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv4.sockstat_udp_mem
- description: IPv4 UDP Sockets Memory
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: mem
- - name: ipv4.sockstat_udplite_sockets
- description: IPv4 UDPLITE Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv4.sockstat_raw_sockets
- description: IPv4 RAW Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv4.sockstat_frag_sockets
- description: IPv4 FRAG Sockets
- unit: "fragments"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv4.sockstat_frag_mem
- description: IPv4 FRAG Sockets Memory
- unit: "KiB"
- chart_type: area
- dimensions:
- - name: mem
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/sockstat6
- monitored_instance:
- name: proc /proc/net/sockstat6
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipv6.sockstat6_tcp_sockets
- description: IPv6 TCP Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv6.sockstat6_udp_sockets
- description: IPv6 UDP Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv6.sockstat6_udplite_sockets
- description: IPv6 UDPLITE Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv6.sockstat6_raw_sockets
- description: IPv6 RAW Sockets
- unit: "sockets"
- chart_type: line
- dimensions:
- - name: inuse
- - name: ipv6.sockstat6_frag_sockets
- description: IPv6 FRAG Sockets
- unit: "fragments"
- chart_type: line
- dimensions:
- - name: inuse
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/ip_vs_stats
- monitored_instance:
- name: proc /proc/net/ip_vs_stats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: ipvs.sockets
- description: IPVS New Connections
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: connections
- - name: ipvs.packets
- description: IPVS Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: ipvs.net
- description: IPVS Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: received
- - name: sent
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/rpc/nfs
- monitored_instance:
- name: proc /proc/net/rpc/nfs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: nfs.net
- description: NFS Client Network
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: udp
- - name: tcp
- - name: nfs.rpc
- description: NFS Client Remote Procedure Calls Statistics
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: calls
- - name: retransmits
- - name: auth_refresh
- - name: nfs.proc2
- description: NFS v2 Client Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc2 call
- - name: nfs.proc3
- description: NFS v3 Client Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc3 call
- - name: nfs.proc4
- description: NFS v4 Client Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc4 call
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/rpc/nfsd
- monitored_instance:
- name: proc /proc/net/rpc/nfsd
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: nfsd.readcache
- description: NFS Server Read Cache
- unit: "reads/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: nocache
- - name: nfsd.filehandles
- description: NFS Server File Handles
- unit: "handles/s"
- chart_type: line
- dimensions:
- - name: stale
- - name: nfsd.io
- description: NFS Server I/O
- unit: "kilobytes/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: nfsd.threads
- description: NFS Server Threads
- unit: "threads"
- chart_type: line
- dimensions:
- - name: threads
- - name: nfsd.net
- description: NFS Server Network Statistics
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: udp
- - name: tcp
- - name: nfsd.rpc
- description: NFS Server Remote Procedure Calls Statistics
- unit: "calls/s"
- chart_type: line
- dimensions:
- - name: calls
- - name: bad_format
- - name: bad_auth
- - name: nfsd.proc2
- description: NFS v2 Server Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc2 call
- - name: nfsd.proc3
- description: NFS v3 Server Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc3 call
- - name: nfsd.proc4
- description: NFS v4 Server Remote Procedure Calls
- unit: "calls/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc4 call
- - name: nfsd.proc4ops
- description: NFS v4 Server Operations
- unit: "operations/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per proc4 operation
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/sctp/snmp
- monitored_instance:
- name: proc /proc/net/sctp/snmp
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: sctp.established
- description: SCTP current total number of established associations
- unit: "associations"
- chart_type: line
- dimensions:
- - name: established
- - name: sctp.transitions
- description: SCTP Association Transitions
- unit: "transitions/s"
- chart_type: line
- dimensions:
- - name: active
- - name: passive
- - name: aborted
- - name: shutdown
- - name: sctp.packets
- description: SCTP Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: sctp.packet_errors
- description: SCTP Packet Errors
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: invalid
- - name: checksum
- - name: sctp.fragmentation
- description: SCTP Fragmentation
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: reassembled
- - name: fragmented
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/stat/nf_conntrack
- monitored_instance:
- name: proc /proc/net/stat/nf_conntrack
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: netfilter_conntrack_full
- link: https://github.com/netdata/netdata/blob/master/health/health.d/netfilter.conf
- metric: netfilter.conntrack_sockets
- info: netfilter connection tracker table size utilization
- os: "linux"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: netfilter.conntrack_sockets
- description: Connection Tracker Connections
- unit: "active connections"
- chart_type: line
- dimensions:
- - name: connections
- - name: netfilter.conntrack_new
- description: Connection Tracker New Connections
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: new
- - name: ignore
- - name: invalid
- - name: netfilter.conntrack_changes
- description: Connection Tracker Changes
- unit: "changes/s"
- chart_type: line
- dimensions:
- - name: inserted
- - name: deleted
- - name: delete_list
- - name: netfilter.conntrack_expect
- description: Connection Tracker Expectations
- unit: "expectations/s"
- chart_type: line
- dimensions:
- - name: created
- - name: deleted
- - name: new
- - name: netfilter.conntrack_search
- description: Connection Tracker Searches
- unit: "searches/s"
- chart_type: line
- dimensions:
- - name: searched
- - name: restarted
- - name: found
- - name: netfilter.conntrack_errors
- description: Connection Tracker Errors
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: icmp_error
- - name: error_failed
- - name: drop
- - name: early_drop
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/net/stat/synproxy
- monitored_instance:
- name: proc /proc/net/stat/synproxy
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts: []
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: netfilter.synproxy_syn_received
- description: SYNPROXY SYN Packets received
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: netfilter.synproxy_conn_reopened
- description: SYNPROXY Connections Reopened
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: reopened
- - name: netfilter.synproxy_cookies
- description: SYNPROXY TCP Cookies
- unit: "cookies/s"
- chart_type: line
- dimensions:
- - name: valid
- - name: invalid
- - name: retransmits
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/spl/kstat/zfs
- monitored_instance:
- name: proc /proc/spl/kstat/zfs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: zfs_pool_state_warn
- link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
- metric: zfspool.state
- info: ZFS pool ${label:pool} state is degraded
- - name: zfs_pool_state_crit
- link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
- metric: zfspool.state
- info: ZFS pool ${label:pool} state is faulted or unavail
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: zfs pool
- description: ""
- labels:
- - name: pool
- description: TBD
- metrics:
- - name: zfspool.state
- description: ZFS pool state
- unit: "boolean"
- chart_type: line
- dimensions:
- - name: online
- - name: degraded
- - name: faulted
- - name: offline
- - name: removed
- - name: unavail
- - name: suspended
- - meta:
- plugin_name: proc.plugin
- module_name: /proc/spl/kstat/zfs/arcstats
- monitored_instance:
- name: proc /proc/spl/kstat/zfs/arcstats
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: zfs_memory_throttle
- link: https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf
- metric: zfs.memory_ops
- info: number of times ZFS had to limit the ARC growth in the last 10 minutes
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: zfs.arc_size
- description: ZFS ARC Size
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: arcsz
- - name: target
- - name: min
- - name: max
- - name: zfs.l2_size
- description: ZFS L2 ARC Size
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: actual
- - name: size
- - name: zfs.reads
- description: ZFS Reads
- unit: "reads/s"
- chart_type: area
- dimensions:
- - name: arc
- - name: demand
- - name: prefetch
- - name: metadata
- - name: l2
- - name: zfs.bytes
- description: ZFS ARC L2 Read/Write Rate
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: zfs.hits
- description: ZFS ARC Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.hits_rate
- description: ZFS ARC Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.dhits
- description: ZFS Demand Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.dhits_rate
- description: ZFS Demand Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.phits
- description: ZFS Prefetch Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.phits_rate
- description: ZFS Prefetch Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.mhits
- description: ZFS Metadata Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.mhits_rate
- description: ZFS Metadata Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.l2hits
- description: ZFS L2 Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.l2hits_rate
- description: ZFS L2 Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.list_hits
- description: ZFS List Hits
- unit: "hits/s"
- chart_type: area
- dimensions:
- - name: mfu
- - name: mfu_ghost
- - name: mru
- - name: mru_ghost
- - name: zfs.arc_size_breakdown
- description: ZFS ARC Size Breakdown
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: recent
- - name: frequent
- - name: zfs.memory_ops
- description: ZFS Memory Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: direct
- - name: throttled
- - name: indirect
- - name: zfs.important_ops
- description: ZFS Important Operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: evict_skip
- - name: deleted
- - name: mutex_miss
- - name: hash_collisions
- - name: zfs.actual_hits
- description: ZFS Actual Cache Hits
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.actual_hits_rate
- description: ZFS Actual Cache Hits Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.demand_data_hits
- description: ZFS Data Demand Efficiency
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.demand_data_hits_rate
- description: ZFS Data Demand Efficiency Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.prefetch_data_hits
- description: ZFS Data Prefetch Efficiency
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.prefetch_data_hits_rate
- description: ZFS Data Prefetch Efficiency Rate
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: zfs.hash_elements
- description: ZFS ARC Hash Elements
- unit: "elements"
- chart_type: line
- dimensions:
- - name: current
- - name: max
- - name: zfs.hash_chains
- description: ZFS ARC Hash Chains
- unit: "chains"
- chart_type: line
- dimensions:
- - name: current
- - name: max
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/fs/btrfs
- monitored_instance:
- name: proc /sys/fs/btrfs
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: btrfs_allocated
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.disk
- info: percentage of allocated BTRFS physical disk space
- os: "*"
- - name: btrfs_data
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.data
- info: utilization of BTRFS data space
- os: "*"
- - name: btrfs_metadata
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.metadata
- info: utilization of BTRFS metadata space
- os: "*"
- - name: btrfs_system
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.system
- info: utilization of BTRFS system space
- os: "*"
- - name: btrfs_device_read_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.device_errors
- info: number of encountered BTRFS read errors
- os: "*"
- - name: btrfs_device_write_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.device_errors
- info: number of encountered BTRFS write errors
- os: "*"
- - name: btrfs_device_flush_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.device_errors
- info: number of encountered BTRFS flush errors
- os: "*"
- - name: btrfs_device_corruption_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.device_errors
- info: number of encountered BTRFS corruption errors
- os: "*"
- - name: btrfs_device_generation_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf
- metric: btrfs.device_errors
- info: number of encountered BTRFS generation errors
- os: "*"
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: btrfs filesystem
- description: ""
- labels:
- - name: filesystem_uuid
- description: TBD
- - name: filesystem_label
- description: TBD
- metrics:
- - name: btrfs.disk
- description: BTRFS Physical Disk Allocation
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: unallocated
- - name: data_free
- - name: data_used
- - name: meta_free
- - name: meta_used
- - name: sys_free
- - name: sys_used
- - name: btrfs.data
- description: BTRFS Data Allocation
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: btrfs.metadata
- description: BTRFS Metadata Allocation
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: reserved
- - name: btrfs.system
- description: BTRFS System Allocation
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: btrfs.commits
- description: BTRFS Commits
- unit: "commits"
- chart_type: line
- dimensions:
- - name: commits
- - name: btrfs.commits_perc_time
- description: BTRFS Commits Time Share
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: commits
- - name: btrfs.commit_timings
- description: BTRFS Commit Timings
- unit: "ms"
- chart_type: line
- dimensions:
- - name: last
- - name: max
- - name: btrfs device
- description: ""
- labels:
- - name: device_id
- description: TBD
- - name: filesystem_uuid
- description: TBD
- - name: filesystem_label
- description: TBD
- metrics:
- - name: btrfs.device_errors
- description: BTRFS Device Errors
- unit: "errors"
- chart_type: line
- dimensions:
- - name: write_errs
- - name: read_errs
- - name: flush_errs
- - name: corruption_errs
- - name: generation_errs
- - meta:
- plugin_name: proc.plugin
- module_name: /sys/class/power_supply
- monitored_instance:
- name: proc /sys/class/power_supply
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
- overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
- setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
- troubleshooting:
- problems:
- list: []
- alerts:
- - name: linux_power_supply_capacity
- link: https://github.com/netdata/netdata/blob/master/health/health.d/linux_power_supply.conf
- metric: powersupply.capacity
- info: percentage of remaining power supply capacity
- metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: power device
- description: ""
- labels:
- - name: device
- description: TBD
- metrics:
- - name: powersupply.capacity
- description: Battery capacity
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: capacity
- - name: powersupply.charge
- description: Battery charge
- unit: "Ah"
- chart_type: line
- dimensions:
- - name: empty_design
- - name: empty
- - name: now
- - name: full
- - name: full_design
- - name: powersupply.energy
- description: Battery energy
- unit: "Wh"
- chart_type: line
- dimensions:
- - name: empty_design
- - name: empty
- - name: now
- - name: full
- - name: full_design
- - name: powersupply.voltage
- description: Power supply voltage
- unit: "V"
- chart_type: line
- dimensions:
- - name: min_design
- - name: min
- - name: now
- - name: max
- - name: max_design
diff --git a/collectors/proc.plugin/plugin_proc.c b/collectors/proc.plugin/plugin_proc.c
index c1a3293f8..fbcaa614a 100644
--- a/collectors/proc.plugin/plugin_proc.c
+++ b/collectors/proc.plugin/plugin_proc.c
@@ -33,7 +33,8 @@ static struct proc_module {
{.name = "/proc/meminfo", .dim = "meminfo", .func = do_proc_meminfo},
{.name = "/sys/kernel/mm/ksm", .dim = "ksm", .func = do_sys_kernel_mm_ksm},
{.name = "/sys/block/zram", .dim = "zram", .func = do_sys_block_zram},
- {.name = "/sys/devices/system/edac/mc", .dim = "ecc", .func = do_proc_sys_devices_system_edac_mc},
+ {.name = "/sys/devices/system/edac/mc", .dim = "edac", .func = do_proc_sys_devices_system_edac_mc},
+ {.name = "/sys/devices/pci/aer", .dim = "pci_aer", .func = do_proc_sys_devices_pci_aer},
{.name = "/sys/devices/system/node", .dim = "numa", .func = do_proc_sys_devices_system_node},
{.name = "/proc/pagetypeinfo", .dim = "pagetypeinfo", .func = do_proc_pagetypeinfo},
@@ -69,8 +70,11 @@ static struct proc_module {
// IPC metrics
{.name = "ipc", .dim = "ipc", .func = do_ipc},
- {.name = "/sys/class/power_supply", .dim = "power_supply", .func = do_sys_class_power_supply},
// linux power supply metrics
+ {.name = "/sys/class/power_supply", .dim = "power_supply", .func = do_sys_class_power_supply},
+
+ // GPU metrics
+ {.name = "/sys/class/drm", .dim = "drm", .func = do_sys_class_drm},
// the terminator of this array
{.name = NULL, .dim = NULL, .func = NULL}
diff --git a/collectors/proc.plugin/plugin_proc.h b/collectors/proc.plugin/plugin_proc.h
index 2b2cabcac..a90f4838e 100644
--- a/collectors/proc.plugin/plugin_proc.h
+++ b/collectors/proc.plugin/plugin_proc.h
@@ -34,6 +34,7 @@ int do_proc_net_stat_synproxy(int update_every, usec_t dt);
int do_proc_net_softnet_stat(int update_every, usec_t dt);
int do_proc_uptime(int update_every, usec_t dt);
int do_proc_sys_devices_system_edac_mc(int update_every, usec_t dt);
+int do_proc_sys_devices_pci_aer(int update_every, usec_t dt);
int do_proc_sys_devices_system_node(int update_every, usec_t dt);
int do_proc_spl_kstat_zfs_arcstats(int update_every, usec_t dt);
int do_proc_spl_kstat_zfs_pool_state(int update_every, usec_t dt);
@@ -45,6 +46,7 @@ int do_ipc(int update_every, usec_t dt);
int do_sys_class_power_supply(int update_every, usec_t dt);
int do_proc_pagetypeinfo(int update_every, usec_t dt);
int do_sys_class_infiniband(int update_every, usec_t dt);
+int do_sys_class_drm(int update_every, usec_t dt);
int get_numa_node_count(void);
// metrics that need to be shared among data collectors
diff --git a/collectors/proc.plugin/proc_meminfo.c b/collectors/proc.plugin/proc_meminfo.c
index 6988c70e0..cd1ba872c 100644
--- a/collectors/proc.plugin/proc_meminfo.c
+++ b/collectors/proc.plugin/proc_meminfo.c
@@ -9,58 +9,92 @@ int do_proc_meminfo(int update_every, usec_t dt) {
(void)dt;
static procfile *ff = NULL;
- static int do_ram = -1, do_swap = -1, do_hwcorrupt = -1, do_committed = -1, do_writeback = -1, do_kernel = -1, do_slab = -1, do_hugepages = -1, do_transparent_hugepages = -1;
- static int do_percpu = 0;
+ static int do_ram = -1
+ , do_swap = -1
+ , do_hwcorrupt = -1
+ , do_committed = -1
+ , do_writeback = -1
+ , do_kernel = -1
+ , do_slab = -1
+ , do_hugepages = -1
+ , do_transparent_hugepages = -1
+ , do_reclaiming = -1
+ , do_high_low = -1
+ , do_cma = -1
+ , do_directmap = -1;
static ARL_BASE *arl_base = NULL;
- static ARL_ENTRY *arl_hwcorrupted = NULL, *arl_memavailable = NULL;
+ static ARL_ENTRY *arl_hwcorrupted = NULL, *arl_memavailable = NULL, *arl_hugepages_total = NULL,
+ *arl_zswapped = NULL, *arl_high_low = NULL, *arl_cma_total = NULL,
+ *arl_directmap4k = NULL, *arl_directmap2m = NULL, *arl_directmap4m = NULL, *arl_directmap1g = NULL;
static unsigned long long
- MemTotal = 0,
- MemFree = 0,
- MemAvailable = 0,
- Buffers = 0,
- Cached = 0,
- //SwapCached = 0,
- //Active = 0,
- //Inactive = 0,
- //ActiveAnon = 0,
- //InactiveAnon = 0,
- //ActiveFile = 0,
- //InactiveFile = 0,
- //Unevictable = 0,
- //Mlocked = 0,
- SwapTotal = 0,
- SwapFree = 0,
- Dirty = 0,
- Writeback = 0,
- //AnonPages = 0,
- //Mapped = 0,
- Shmem = 0,
- Slab = 0,
- SReclaimable = 0,
- SUnreclaim = 0,
- KernelStack = 0,
- PageTables = 0,
- NFS_Unstable = 0,
- Bounce = 0,
- WritebackTmp = 0,
- //CommitLimit = 0,
- Committed_AS = 0,
- //VmallocTotal = 0,
- VmallocUsed = 0,
- //VmallocChunk = 0,
- Percpu = 0,
- AnonHugePages = 0,
- ShmemHugePages = 0,
- HugePages_Total = 0,
- HugePages_Free = 0,
- HugePages_Rsvd = 0,
- HugePages_Surp = 0,
- Hugepagesize = 0,
- //DirectMap4k = 0,
- //DirectMap2M = 0,
- HardwareCorrupted = 0;
+ MemTotal = 0
+ , MemFree = 0
+ , MemAvailable = 0
+ , Buffers = 0
+ , Cached = 0
+ , SwapCached = 0
+ , Active = 0
+ , Inactive = 0
+ , ActiveAnon = 0
+ , InactiveAnon = 0
+ , ActiveFile = 0
+ , InactiveFile = 0
+ , Unevictable = 0
+ , Mlocked = 0
+ , HighTotal = 0
+ , HighFree = 0
+ , LowTotal = 0
+ , LowFree = 0
+ , MmapCopy = 0
+ , SwapTotal = 0
+ , SwapFree = 0
+ , Zswap = 0
+ , Zswapped = 0
+ , Dirty = 0
+ , Writeback = 0
+ , AnonPages = 0
+ , Mapped = 0
+ , Shmem = 0
+ , KReclaimable = 0
+ , Slab = 0
+ , SReclaimable = 0
+ , SUnreclaim = 0
+ , KernelStack = 0
+ , ShadowCallStack = 0
+ , PageTables = 0
+ , SecPageTables = 0
+ , NFS_Unstable = 0
+ , Bounce = 0
+ , WritebackTmp = 0
+ , CommitLimit = 0
+ , Committed_AS = 0
+ , VmallocTotal = 0
+ , VmallocUsed = 0
+ , VmallocChunk = 0
+ , Percpu = 0
+ //, EarlyMemtestBad = 0
+ , HardwareCorrupted = 0
+ , AnonHugePages = 0
+ , ShmemHugePages = 0
+ , ShmemPmdMapped = 0
+ , FileHugePages = 0
+ , FilePmdMapped = 0
+ , CmaTotal = 0
+ , CmaFree = 0
+ //, Unaccepted = 0
+ , HugePages_Total = 0
+ , HugePages_Free = 0
+ , HugePages_Rsvd = 0
+ , HugePages_Surp = 0
+ , Hugepagesize = 0
+ //, Hugetlb = 0
+ , DirectMap4k = 0
+ , DirectMap2M = 0
+ , DirectMap4M = 0
+ , DirectMap1G = 0
+ ;
if(unlikely(!arl_base)) {
do_ram = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "system ram", 1);
@@ -72,6 +106,12 @@ int do_proc_meminfo(int update_every, usec_t dt) {
do_slab = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "slab memory", 1);
do_hugepages = config_get_boolean_ondemand(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "hugepages", CONFIG_BOOLEAN_AUTO);
do_transparent_hugepages = config_get_boolean_ondemand(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "transparent hugepages", CONFIG_BOOLEAN_AUTO);
+ do_reclaiming = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "memory reclaiming", CONFIG_BOOLEAN_AUTO);
+ do_high_low = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "high low memory", CONFIG_BOOLEAN_AUTO);
+ do_cma = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "cma memory", CONFIG_BOOLEAN_AUTO);
+ do_directmap = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_MEMINFO, "direct maps", CONFIG_BOOLEAN_AUTO);
+
+ // https://github.com/torvalds/linux/blob/master/fs/proc/meminfo.c
arl_base = arl_create("meminfo", NULL, 60);
arl_expect(arl_base, "MemTotal", &MemTotal);
@@ -79,46 +119,90 @@ int do_proc_meminfo(int update_every, usec_t dt) {
arl_memavailable = arl_expect(arl_base, "MemAvailable", &MemAvailable);
arl_expect(arl_base, "Buffers", &Buffers);
arl_expect(arl_base, "Cached", &Cached);
- //arl_expect(arl_base, "SwapCached", &SwapCached);
- //arl_expect(arl_base, "Active", &Active);
- //arl_expect(arl_base, "Inactive", &Inactive);
- //arl_expect(arl_base, "ActiveAnon", &ActiveAnon);
- //arl_expect(arl_base, "InactiveAnon", &InactiveAnon);
- //arl_expect(arl_base, "ActiveFile", &ActiveFile);
- //arl_expect(arl_base, "InactiveFile", &InactiveFile);
- //arl_expect(arl_base, "Unevictable", &Unevictable);
- //arl_expect(arl_base, "Mlocked", &Mlocked);
+ arl_expect(arl_base, "SwapCached", &SwapCached);
+ arl_expect(arl_base, "Active", &Active);
+ arl_expect(arl_base, "Inactive", &Inactive);
+ arl_expect(arl_base, "Active(anon)", &ActiveAnon);
+ arl_expect(arl_base, "Inactive(anon)", &InactiveAnon);
+ arl_expect(arl_base, "Active(file)", &ActiveFile);
+ arl_expect(arl_base, "Inactive(file)", &InactiveFile);
+ arl_expect(arl_base, "Unevictable", &Unevictable);
+ arl_expect(arl_base, "Mlocked", &Mlocked);
+
+ // CONFIG_HIGHMEM
+ arl_high_low = arl_expect(arl_base, "HighTotal", &HighTotal);
+ arl_expect(arl_base, "HighFree", &HighFree);
+ arl_expect(arl_base, "LowTotal", &LowTotal);
+ arl_expect(arl_base, "LowFree", &LowFree);
+
+ // CONFIG_MMU
+ arl_expect(arl_base, "MmapCopy", &MmapCopy);
+
arl_expect(arl_base, "SwapTotal", &SwapTotal);
arl_expect(arl_base, "SwapFree", &SwapFree);
+
+ // CONFIG_ZSWAP
+ arl_zswapped = arl_expect(arl_base, "Zswap", &Zswap);
+ arl_expect(arl_base, "Zswapped", &Zswapped);
+
arl_expect(arl_base, "Dirty", &Dirty);
arl_expect(arl_base, "Writeback", &Writeback);
- //arl_expect(arl_base, "AnonPages", &AnonPages);
- //arl_expect(arl_base, "Mapped", &Mapped);
+ arl_expect(arl_base, "AnonPages", &AnonPages);
+ arl_expect(arl_base, "Mapped", &Mapped);
arl_expect(arl_base, "Shmem", &Shmem);
+ arl_expect(arl_base, "KReclaimable", &KReclaimable);
arl_expect(arl_base, "Slab", &Slab);
arl_expect(arl_base, "SReclaimable", &SReclaimable);
arl_expect(arl_base, "SUnreclaim", &SUnreclaim);
arl_expect(arl_base, "KernelStack", &KernelStack);
+
+ // CONFIG_SHADOW_CALL_STACK
+ arl_expect(arl_base, "ShadowCallStack", &ShadowCallStack);
+
arl_expect(arl_base, "PageTables", &PageTables);
+ arl_expect(arl_base, "SecPageTables", &SecPageTables);
arl_expect(arl_base, "NFS_Unstable", &NFS_Unstable);
arl_expect(arl_base, "Bounce", &Bounce);
arl_expect(arl_base, "WritebackTmp", &WritebackTmp);
- //arl_expect(arl_base, "CommitLimit", &CommitLimit);
+ arl_expect(arl_base, "CommitLimit", &CommitLimit);
arl_expect(arl_base, "Committed_AS", &Committed_AS);
- //arl_expect(arl_base, "VmallocTotal", &VmallocTotal);
+ arl_expect(arl_base, "VmallocTotal", &VmallocTotal);
arl_expect(arl_base, "VmallocUsed", &VmallocUsed);
- //arl_expect(arl_base, "VmallocChunk", &VmallocChunk);
+ arl_expect(arl_base, "VmallocChunk", &VmallocChunk);
arl_expect(arl_base, "Percpu", &Percpu);
+
+ // CONFIG_MEMTEST
+ //arl_expect(arl_base, "EarlyMemtestBad", &EarlyMemtestBad);
+
+ // CONFIG_MEMORY_FAILURE
arl_hwcorrupted = arl_expect(arl_base, "HardwareCorrupted", &HardwareCorrupted);
+
+ // CONFIG_TRANSPARENT_HUGEPAGE
arl_expect(arl_base, "AnonHugePages", &AnonHugePages);
arl_expect(arl_base, "ShmemHugePages", &ShmemHugePages);
- arl_expect(arl_base, "HugePages_Total", &HugePages_Total);
+ arl_expect(arl_base, "ShmemPmdMapped", &ShmemPmdMapped);
+ arl_expect(arl_base, "FileHugePages", &FileHugePages);
+ arl_expect(arl_base, "FilePmdMapped", &FilePmdMapped);
+
+ // CONFIG_CMA
+ arl_cma_total = arl_expect(arl_base, "CmaTotal", &CmaTotal);
+ arl_expect(arl_base, "CmaFree", &CmaFree);
+
+ // CONFIG_UNACCEPTED_MEMORY
+ //arl_expect(arl_base, "Unaccepted", &Unaccepted);
+
+ // these appear only when hugepages are supported
+ arl_hugepages_total = arl_expect(arl_base, "HugePages_Total", &HugePages_Total);
arl_expect(arl_base, "HugePages_Free", &HugePages_Free);
arl_expect(arl_base, "HugePages_Rsvd", &HugePages_Rsvd);
arl_expect(arl_base, "HugePages_Surp", &HugePages_Surp);
arl_expect(arl_base, "Hugepagesize", &Hugepagesize);
- //arl_expect(arl_base, "DirectMap4k", &DirectMap4k);
- //arl_expect(arl_base, "DirectMap2M", &DirectMap2M);
+ //arl_expect(arl_base, "Hugetlb", &Hugetlb);
+
+ arl_directmap4k = arl_expect(arl_base, "DirectMap4k", &DirectMap4k);
+ arl_directmap2m = arl_expect(arl_base, "DirectMap2M", &DirectMap2M);
+ arl_directmap4m = arl_expect(arl_base, "DirectMap4M", &DirectMap4M);
+ arl_directmap1g = arl_expect(arl_base, "DirectMap1G", &DirectMap1G);
}
if(unlikely(!ff)) {
@@ -136,26 +220,17 @@ int do_proc_meminfo(int update_every, usec_t dt) {
size_t lines = procfile_lines(ff), l;
arl_begin(arl_base);
-
- static int first_ff_read = 1;
-
for(l = 0; l < lines ;l++) {
size_t words = procfile_linewords(ff, l);
if(unlikely(words < 2)) continue;
- if (first_ff_read && !strcmp(procfile_lineword(ff, l, 0), "Percpu"))
- do_percpu = 1;
-
if(unlikely(arl_check(arl_base,
procfile_lineword(ff, l, 0),
procfile_lineword(ff, l, 1)))) break;
}
- if (first_ff_read)
- first_ff_read = 0;
-
// http://calimeroteknik.free.fr/blag/?article20/really-used-memory-on-gnu-linux
- unsigned long long MemCached = Cached + SReclaimable - Shmem;
+ unsigned long long MemCached = Cached + SReclaimable + KReclaimable - Shmem;
unsigned long long MemUsed = MemTotal - MemFree - MemCached - Buffers;
// The Linux kernel doesn't report ZFS ARC usage as cache memory (the ARC is included in the total used system memory)
if (!inside_lxc_container) {
@@ -207,7 +282,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
"mem"
, "available"
, NULL
- , "system"
+ , "overview"
, NULL
, "Available RAM for applications"
, "MiB"
@@ -238,7 +313,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
if(unlikely(!st_system_swap)) {
st_system_swap = rrdset_create_localhost(
- "system"
+ "mem"
, "swap"
, NULL
, "swap"
@@ -247,7 +322,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
, "MiB"
, PLUGIN_PROC_NAME
, PLUGIN_PROC_MODULE_MEMINFO_NAME
- , NETDATA_CHART_PRIO_SYSTEM_SWAP
+ , NETDATA_CHART_PRIO_MEM_SWAP
, update_every
, RRDSET_TYPE_STACKED
);
@@ -261,6 +336,62 @@ int do_proc_meminfo(int update_every, usec_t dt) {
rrddim_set_by_pointer(st_system_swap, rd_used, SwapUsed);
rrddim_set_by_pointer(st_system_swap, rd_free, SwapFree);
rrdset_done(st_system_swap);
+
+ {
+ static RRDSET *st_mem_swap_cached = NULL;
+ static RRDDIM *rd_cached = NULL;
+
+ if (unlikely(!st_mem_swap_cached)) {
+ st_mem_swap_cached = rrdset_create_localhost(
+ "mem"
+ , "swap_cached"
+ , NULL
+ , "swap"
+ , NULL
+ , "Swap Memory Cached in RAM"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_SWAP + 1
+ , update_every
+ , RRDSET_TYPE_AREA
+ );
+
+ rd_cached = rrddim_add(st_mem_swap_cached, "cached", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_swap_cached, rd_cached, SwapCached);
+ rrdset_done(st_mem_swap_cached);
+ }
+
+ if(arl_zswapped->flags & ARL_ENTRY_FLAG_FOUND) {
+ static RRDSET *st_mem_zswap = NULL;
+ static RRDDIM *rd_zswap = NULL, *rd_zswapped = NULL;
+
+ if (unlikely(!st_mem_zswap)) {
+ st_mem_zswap = rrdset_create_localhost(
+ "mem"
+ , "zswap"
+ , NULL
+ , "zswap"
+ , NULL
+ , "Zswap Usage"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_ZSWAP
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rd_zswap = rrddim_add(st_mem_zswap, "zswap", "in-ram", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_zswapped = rrddim_add(st_mem_zswap, "zswapped", "on-disk", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_zswap, rd_zswap, Zswap);
+ rrddim_set_by_pointer(st_mem_zswap, rd_zswapped, Zswapped);
+ rrdset_done(st_mem_zswap);
+ }
}
if(arl_hwcorrupted->flags & ARL_ENTRY_FLAG_FOUND &&
@@ -306,7 +437,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
"mem"
, "committed"
, NULL
- , "system"
+ , "overview"
, NULL
, "Committed (Allocated) Memory"
, "MiB"
@@ -335,7 +466,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
"mem"
, "writeback"
, NULL
- , "kernel"
+ , "writeback"
, NULL
, "Writeback Memory"
, "MiB"
@@ -367,7 +498,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
if(do_kernel) {
static RRDSET *st_mem_kernel = NULL;
static RRDDIM *rd_slab = NULL, *rd_kernelstack = NULL, *rd_pagetables = NULL, *rd_vmallocused = NULL,
- *rd_percpu = NULL;
+ *rd_percpu = NULL, *rd_kreclaimable = NULL;
if(unlikely(!st_mem_kernel)) {
st_mem_kernel = rrdset_create_localhost(
@@ -391,16 +522,16 @@ int do_proc_meminfo(int update_every, usec_t dt) {
rd_kernelstack = rrddim_add(st_mem_kernel, "KernelStack", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
rd_pagetables = rrddim_add(st_mem_kernel, "PageTables", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
rd_vmallocused = rrddim_add(st_mem_kernel, "VmallocUsed", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
- if (do_percpu)
- rd_percpu = rrddim_add(st_mem_kernel, "Percpu", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_percpu = rrddim_add(st_mem_kernel, "Percpu", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_kreclaimable = rrddim_add(st_mem_kernel, "KReclaimable", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
}
- rrddim_set_by_pointer(st_mem_kernel, rd_slab, Slab);
- rrddim_set_by_pointer(st_mem_kernel, rd_kernelstack, KernelStack);
- rrddim_set_by_pointer(st_mem_kernel, rd_pagetables, PageTables);
- rrddim_set_by_pointer(st_mem_kernel, rd_vmallocused, VmallocUsed);
- if (do_percpu)
- rrddim_set_by_pointer(st_mem_kernel, rd_percpu, Percpu);
+ rrddim_set_by_pointer(st_mem_kernel, rd_slab, Slab);
+ rrddim_set_by_pointer(st_mem_kernel, rd_kernelstack, KernelStack);
+ rrddim_set_by_pointer(st_mem_kernel, rd_pagetables, PageTables);
+ rrddim_set_by_pointer(st_mem_kernel, rd_vmallocused, VmallocUsed);
+ rrddim_set_by_pointer(st_mem_kernel, rd_percpu, Percpu);
+ rrddim_set_by_pointer(st_mem_kernel, rd_kreclaimable, KReclaimable);
rrdset_done(st_mem_kernel);
}
@@ -436,9 +567,10 @@ int do_proc_meminfo(int update_every, usec_t dt) {
rrdset_done(st_mem_slab);
}
- if(do_hugepages == CONFIG_BOOLEAN_YES || (do_hugepages == CONFIG_BOOLEAN_AUTO &&
+ if(arl_hugepages_total->flags & ARL_ENTRY_FLAG_FOUND &&
+ (do_hugepages == CONFIG_BOOLEAN_YES || (do_hugepages == CONFIG_BOOLEAN_AUTO &&
((Hugepagesize && HugePages_Total) ||
- netdata_zero_metrics_enabled == CONFIG_BOOLEAN_YES))) {
+ netdata_zero_metrics_enabled == CONFIG_BOOLEAN_YES)))) {
do_hugepages = CONFIG_BOOLEAN_YES;
static RRDSET *st_mem_hugepages = NULL;
@@ -455,7 +587,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
, "MiB"
, PLUGIN_PROC_NAME
, PLUGIN_PROC_MODULE_MEMINFO_NAME
- , NETDATA_CHART_PRIO_MEM_HUGEPAGES + 1
+ , NETDATA_CHART_PRIO_MEM_HUGEPAGES
, update_every
, RRDSET_TYPE_STACKED
);
@@ -487,7 +619,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
if(unlikely(!st_mem_transparent_hugepages)) {
st_mem_transparent_hugepages = rrdset_create_localhost(
"mem"
- , "transparent_hugepages"
+ , "thp"
, NULL
, "hugepages"
, NULL
@@ -495,7 +627,7 @@ int do_proc_meminfo(int update_every, usec_t dt) {
, "MiB"
, PLUGIN_PROC_NAME
, PLUGIN_PROC_MODULE_MEMINFO_NAME
- , NETDATA_CHART_PRIO_MEM_HUGEPAGES
+ , NETDATA_CHART_PRIO_MEM_HUGEPAGES + 1
, update_every
, RRDSET_TYPE_STACKED
);
@@ -509,6 +641,206 @@ int do_proc_meminfo(int update_every, usec_t dt) {
rrddim_set_by_pointer(st_mem_transparent_hugepages, rd_anonymous, AnonHugePages);
rrddim_set_by_pointer(st_mem_transparent_hugepages, rd_shared, ShmemHugePages);
rrdset_done(st_mem_transparent_hugepages);
+
+ {
+ static RRDSET *st_mem_thp_details = NULL;
+ static RRDDIM *rd_shmem_pmd_mapped = NULL, *rd_file_huge_pages = NULL, *rd_file_pmd_mapped = NULL;
+
+ if(unlikely(!st_mem_thp_details)) {
+ st_mem_thp_details = rrdset_create_localhost(
+ "mem"
+ , "thp_details"
+ , NULL
+ , "hugepages"
+ , NULL
+ , "Details of Transparent HugePages Usage"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_HUGEPAGES_DETAILS
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdset_flag_set(st_mem_thp_details, RRDSET_FLAG_DETAIL);
+
+ rd_shmem_pmd_mapped = rrddim_add(st_mem_thp_details, "shmem_pmd", "ShmemPmdMapped", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_file_huge_pages = rrddim_add(st_mem_thp_details, "file", "FileHugePages", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_file_pmd_mapped = rrddim_add(st_mem_thp_details, "file_pmd", "FilePmdMapped", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_thp_details, rd_shmem_pmd_mapped, ShmemPmdMapped);
+ rrddim_set_by_pointer(st_mem_thp_details, rd_file_huge_pages, FileHugePages);
+ rrddim_set_by_pointer(st_mem_thp_details, rd_file_pmd_mapped, FilePmdMapped);
+ rrdset_done(st_mem_thp_details);
+ }
+ }
+
+ if(do_reclaiming != CONFIG_BOOLEAN_NO) {
+ static RRDSET *st_mem_reclaiming = NULL;
+ static RRDDIM *rd_active = NULL, *rd_inactive = NULL,
+ *rd_active_anon = NULL, *rd_inactive_anon = NULL,
+ *rd_active_file = NULL, *rd_inactive_file = NULL,
+ *rd_unevictable = NULL, *rd_mlocked = NULL;
+
+ if(unlikely(!st_mem_reclaiming)) {
+ st_mem_reclaiming = rrdset_create_localhost(
+ "mem"
+ , "reclaiming"
+ , NULL
+ , "reclaiming"
+ , NULL
+ , "Memory Reclaiming"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_RECLAIMING
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdset_flag_set(st_mem_reclaiming, RRDSET_FLAG_DETAIL);
+
+ rd_active = rrddim_add(st_mem_reclaiming, "active", "Active", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_inactive = rrddim_add(st_mem_reclaiming, "inactive", "Inactive", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_active_anon = rrddim_add(st_mem_reclaiming, "active_anon", "Active(anon)", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_inactive_anon = rrddim_add(st_mem_reclaiming, "inactive_anon", "Inactive(anon)", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_active_file = rrddim_add(st_mem_reclaiming, "active_file", "Active(file)", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_inactive_file = rrddim_add(st_mem_reclaiming, "inactive_file", "Inactive(file)", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_unevictable = rrddim_add(st_mem_reclaiming, "unevictable", "Unevictable", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_mlocked = rrddim_add(st_mem_reclaiming, "mlocked", "Mlocked", 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_active, Active);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_inactive, Inactive);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_active_anon, ActiveAnon);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_inactive_anon, InactiveAnon);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_active_file, ActiveFile);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_inactive_file, InactiveFile);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_unevictable, Unevictable);
+ rrddim_set_by_pointer(st_mem_reclaiming, rd_mlocked, Mlocked);
+
+ rrdset_done(st_mem_reclaiming);
+ }
+
+ if(do_high_low != CONFIG_BOOLEAN_NO && (arl_high_low->flags & ARL_ENTRY_FLAG_FOUND)) {
+ static RRDSET *st_mem_high_low = NULL;
+ static RRDDIM *rd_high_used = NULL, *rd_low_used = NULL;
+ static RRDDIM *rd_high_free = NULL, *rd_low_free = NULL;
+
+ if(unlikely(!st_mem_high_low)) {
+ st_mem_high_low = rrdset_create_localhost(
+ "mem"
+ , "high_low"
+ , NULL
+ , "high_low"
+ , NULL
+ , "High and Low Used and Free Memory Areas"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_HIGH_LOW
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rrdset_flag_set(st_mem_high_low, RRDSET_FLAG_DETAIL);
+
+ rd_high_used = rrddim_add(st_mem_high_low, "high_used", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_low_used = rrddim_add(st_mem_high_low, "low_used", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_high_free = rrddim_add(st_mem_high_low, "high_free", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_low_free = rrddim_add(st_mem_high_low, "low_free", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_high_low, rd_high_used, HighTotal - HighFree);
+ rrddim_set_by_pointer(st_mem_high_low, rd_low_used, LowTotal - LowFree);
+ rrddim_set_by_pointer(st_mem_high_low, rd_high_free, HighFree);
+ rrddim_set_by_pointer(st_mem_high_low, rd_low_free, LowFree);
+ rrdset_done(st_mem_high_low);
+ }
+
+ if(do_cma == CONFIG_BOOLEAN_YES || (do_cma == CONFIG_BOOLEAN_AUTO && (arl_cma_total->flags & ARL_ENTRY_FLAG_FOUND) && CmaTotal)) {
+ do_cma = CONFIG_BOOLEAN_YES;
+
+ static RRDSET *st_mem_cma = NULL;
+ static RRDDIM *rd_used = NULL, *rd_free = NULL;
+
+ if(unlikely(!st_mem_cma)) {
+ st_mem_cma = rrdset_create_localhost(
+ "mem"
+ , "cma"
+ , NULL
+ , "cma"
+ , NULL
+ , "Contiguous Memory Allocator (CMA) Memory"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_CMA
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rd_used = rrddim_add(st_mem_cma, "used", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ rd_free = rrddim_add(st_mem_cma, "free", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ rrddim_set_by_pointer(st_mem_cma, rd_used, CmaTotal - CmaFree);
+ rrddim_set_by_pointer(st_mem_cma, rd_free, CmaFree);
+ rrdset_done(st_mem_cma);
+ }
+
+ if(do_directmap != CONFIG_BOOLEAN_NO &&
+ ((arl_directmap4k->flags & ARL_ENTRY_FLAG_FOUND) ||
+ (arl_directmap2m->flags & ARL_ENTRY_FLAG_FOUND) ||
+ (arl_directmap4m->flags & ARL_ENTRY_FLAG_FOUND) ||
+ (arl_directmap1g->flags & ARL_ENTRY_FLAG_FOUND)))
+ {
+ static RRDSET *st_mem_directmap = NULL;
+ static RRDDIM *rd_4k = NULL, *rd_2m = NULL, *rd_1g = NULL, *rd_4m = NULL;
+
+ if(unlikely(!st_mem_directmap)) {
+ st_mem_directmap = rrdset_create_localhost(
+ "mem"
+ , "directmaps"
+ , NULL
+ , "overview"
+ , NULL
+ , "Direct Memory Mappings"
+ , "MiB"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_MEMINFO_NAME
+ , NETDATA_CHART_PRIO_MEM_DIRECTMAP
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ if(arl_directmap4k->flags & ARL_ENTRY_FLAG_FOUND)
+ rd_4k = rrddim_add(st_mem_directmap, "4k", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+
+ if(arl_directmap2m->flags & ARL_ENTRY_FLAG_FOUND)
+ rd_2m = rrddim_add(st_mem_directmap, "2m", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+
+ if(arl_directmap4m->flags & ARL_ENTRY_FLAG_FOUND)
+ rd_4m = rrddim_add(st_mem_directmap, "4m", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+
+ if(arl_directmap1g->flags & ARL_ENTRY_FLAG_FOUND)
+ rd_1g = rrddim_add(st_mem_directmap, "1g", NULL, 1, 1024, RRD_ALGORITHM_ABSOLUTE);
+ }
+
+ if(rd_4k)
+ rrddim_set_by_pointer(st_mem_directmap, rd_4k, DirectMap4k);
+
+ if(rd_2m)
+ rrddim_set_by_pointer(st_mem_directmap, rd_2m, DirectMap2M);
+
+ if(rd_4m)
+ rrddim_set_by_pointer(st_mem_directmap, rd_4m, DirectMap4M);
+
+ if(rd_1g)
+ rrddim_set_by_pointer(st_mem_directmap, rd_1g, DirectMap1G);
+
+ rrdset_done(st_mem_directmap);
}
return 0;
diff --git a/collectors/proc.plugin/proc_pressure.c b/collectors/proc.plugin/proc_pressure.c
index 28e4c592d..4037e60ac 100644
--- a/collectors/proc.plugin/proc_pressure.c
+++ b/collectors/proc.plugin/proc_pressure.c
@@ -12,28 +12,55 @@ static int pressure_update_every = 0;
static struct pressure resources[PRESSURE_NUM_RESOURCES] = {
{
- .some =
- {.share_time = {.id = "cpu_some_pressure", .title = "CPU some pressure"},
- .total_time = {.id = "cpu_some_pressure_stall_time", .title = "CPU some pressure stall time"}},
- .full =
- {.share_time = {.id = "cpu_full_pressure", .title = "CPU full pressure"},
- .total_time = {.id = "cpu_full_pressure_stall_time", .title = "CPU full pressure stall time"}},
+ .some = {
+ .available = true,
+ .share_time = {.id = "cpu_some_pressure", .title = "CPU some pressure"},
+ .total_time = {.id = "cpu_some_pressure_stall_time", .title = "CPU some pressure stall time"}
+ },
+ .full = {
+ // Disable CPU full pressure.
+ // See https://github.com/torvalds/linux/commit/890d550d7dbac7a31ecaa78732aa22be282bb6b8
+ .available = false,
+ .share_time = {.id = "cpu_full_pressure", .title = "CPU full pressure"},
+ .total_time = {.id = "cpu_full_pressure_stall_time", .title = "CPU full pressure stall time"}
+ },
},
{
- .some =
- {.share_time = {.id = "memory_some_pressure", .title = "Memory some pressure"},
- .total_time = {.id = "memory_some_pressure_stall_time", .title = "Memory some pressure stall time"}},
- .full =
- {.share_time = {.id = "memory_full_pressure", .title = "Memory full pressure"},
- .total_time = {.id = "memory_full_pressure_stall_time", .title = "Memory full pressure stall time"}},
+ .some = {
+ .available = true,
+ .share_time = {.id = "memory_some_pressure", .title = "Memory some pressure"},
+ .total_time = {.id = "memory_some_pressure_stall_time", .title = "Memory some pressure stall time"}
+ },
+ .full = {
+ .available = true,
+ .share_time = {.id = "memory_full_pressure", .title = "Memory full pressure"},
+ .total_time = {.id = "memory_full_pressure_stall_time", .title = "Memory full pressure stall time"}
+ },
},
{
- .some =
- {.share_time = {.id = "io_some_pressure", .title = "I/O some pressure"},
- .total_time = {.id = "io_some_pressure_stall_time", .title = "I/O some pressure stall time"}},
- .full =
- {.share_time = {.id = "io_full_pressure", .title = "I/O full pressure"},
- .total_time = {.id = "io_full_pressure_stall_time", .title = "I/O full pressure stall time"}},
+ .some = {
+ .available = true,
+ .share_time = {.id = "io_some_pressure", .title = "I/O some pressure"},
+ .total_time = {.id = "io_some_pressure_stall_time", .title = "I/O some pressure stall time"}
+ },
+ .full = {
+ .available = true,
+ .share_time = {.id = "io_full_pressure", .title = "I/O full pressure"},
+ .total_time = {.id = "io_full_pressure_stall_time", .title = "I/O full pressure stall time"}
+ },
+ },
+ {
+ .some = {
+ // this is not available
+ .available = false,
+ .share_time = {.id = "irq_some_pressure", .title = "IRQ some pressure"},
+ .total_time = {.id = "irq_some_pressure_stall_time", .title = "IRQ some pressure stall time"}
+ },
+ .full = {
+ .available = true,
+ .share_time = {.id = "irq_full_pressure", .title = "IRQ full pressure"},
+ .total_time = {.id = "irq_full_pressure_stall_time", .title = "IRQ full pressure stall time"}
+ },
},
};
@@ -46,6 +73,7 @@ static struct resource_info {
{ .name = "cpu", .family = "cpu", .section_priority = NETDATA_CHART_PRIO_SYSTEM_CPU },
{ .name = "memory", .family = "ram", .section_priority = NETDATA_CHART_PRIO_SYSTEM_RAM },
{ .name = "io", .family = "disk", .section_priority = NETDATA_CHART_PRIO_SYSTEM_IO },
+ { .name = "irq", .family = "interrupts", .section_priority = NETDATA_CHART_PRIO_SYSTEM_INTERRUPTS },
};
void update_pressure_charts(struct pressure_charts *pcs) {
@@ -65,7 +93,7 @@ void update_pressure_charts(struct pressure_charts *pcs) {
}
}
-static void proc_pressure_do_resource(procfile *ff, int res_idx, int some) {
+static void proc_pressure_do_resource(procfile *ff, int res_idx, size_t line, bool some) {
struct pressure_charts *pcs;
struct resource_info ri;
pcs = some ? &resources[res_idx].some : &resources[res_idx].full;
@@ -93,9 +121,9 @@ static void proc_pressure_do_resource(procfile *ff, int res_idx, int some) {
rrddim_add(pcs->share_time.st, some ? "some 300" : "full 300", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
}
- pcs->share_time.value10 = strtod(procfile_lineword(ff, some ? 0 : 1, 2), NULL);
- pcs->share_time.value60 = strtod(procfile_lineword(ff, some ? 0 : 1, 4), NULL);
- pcs->share_time.value300 = strtod(procfile_lineword(ff, some ? 0 : 1, 6), NULL);
+ pcs->share_time.value10 = strtod(procfile_lineword(ff, line, 2), NULL);
+ pcs->share_time.value60 = strtod(procfile_lineword(ff, line, 4), NULL);
+ pcs->share_time.value300 = strtod(procfile_lineword(ff, line, 6), NULL);
if (unlikely(!pcs->total_time.st)) {
pcs->total_time.st = rrdset_create_localhost(
@@ -114,19 +142,19 @@ static void proc_pressure_do_resource(procfile *ff, int res_idx, int some) {
pcs->total_time.rdtotal = rrddim_add(pcs->total_time.st, "time", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
}
- pcs->total_time.value_total = str2ull(procfile_lineword(ff, some ? 0 : 1, 8), NULL) / 1000;
+ pcs->total_time.value_total = str2ull(procfile_lineword(ff, line, 8), NULL) / 1000;
}
-static void proc_pressure_do_resource_some(procfile *ff, int res_idx) {
- proc_pressure_do_resource(ff, res_idx, 1);
+static void proc_pressure_do_resource_some(procfile *ff, int res_idx, size_t line) {
+ proc_pressure_do_resource(ff, res_idx, line, true);
}
-static void proc_pressure_do_resource_full(procfile *ff, int res_idx) {
- proc_pressure_do_resource(ff, res_idx, 0);
+static void proc_pressure_do_resource_full(procfile *ff, int res_idx, size_t line) {
+ proc_pressure_do_resource(ff, res_idx, line, false);
}
int do_proc_pressure(int update_every, usec_t dt) {
- int fail_count = 0;
+ int ok_count = 0;
int i;
static usec_t next_pressure_dt = 0;
@@ -150,6 +178,9 @@ int do_proc_pressure(int update_every, usec_t dt) {
procfile *ff = resource_info[i].pf;
int do_some = resources[i].some.enabled, do_full = resources[i].full.enabled;
+ if (!resources[i].some.available && !resources[i].full.available)
+ continue;
+
if (unlikely(!ff)) {
char filename[FILENAME_MAX + 1];
char config_key[CONFIG_MAX_NAME + 1];
@@ -161,56 +192,66 @@ int do_proc_pressure(int update_every, usec_t dt) {
, base_path
, resource_info[i].name);
+ do_some = resources[i].some.available ? CONFIG_BOOLEAN_YES : CONFIG_BOOLEAN_NO;
+ do_full = resources[i].full.available ? CONFIG_BOOLEAN_YES : CONFIG_BOOLEAN_NO;
+
snprintfz(config_key, CONFIG_MAX_NAME, "enable %s some pressure", resource_info[i].name);
- do_some = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_PRESSURE, config_key, CONFIG_BOOLEAN_YES);
+ do_some = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_PRESSURE, config_key, do_some);
resources[i].some.enabled = do_some;
- // Disable CPU full pressure.
- // See https://github.com/torvalds/linux/commit/890d550d7dbac7a31ecaa78732aa22be282bb6b8
- if (i == 0) {
- do_full = CONFIG_BOOLEAN_NO;
- resources[i].full.enabled = do_full;
- } else {
- snprintfz(config_key, CONFIG_MAX_NAME, "enable %s full pressure", resource_info[i].name);
- do_full = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_PRESSURE, config_key, CONFIG_BOOLEAN_YES);
- resources[i].full.enabled = do_full;
+ snprintfz(config_key, CONFIG_MAX_NAME, "enable %s full pressure", resource_info[i].name);
+ do_full = config_get_boolean(CONFIG_SECTION_PLUGIN_PROC_PRESSURE, config_key, do_full);
+ resources[i].full.enabled = do_full;
+
+ if (!do_full && !do_some) {
+ resources[i].some.available = false;
+ resources[i].full.available = false;
+ continue;
}
- ff = procfile_open(filename, " =", PROCFILE_FLAG_DEFAULT);
+ ff = procfile_open(filename, " =", PROCFILE_FLAG_NO_ERROR_ON_FILE_IO);
if (unlikely(!ff)) {
- collector_error("Cannot read pressure information from %s.", filename);
- fail_count++;
+ // PSI IRQ was added recently (https://github.com/torvalds/linux/commit/52b1364ba0b105122d6de0e719b36db705011ac1)
+ if (strcmp(resource_info[i].name, "irq") != 0)
+ collector_error("Cannot read pressure information from %s.", filename);
+ resources[i].some.available = false;
+ resources[i].full.available = false;
continue;
}
}
ff = procfile_readall(ff);
resource_info[i].pf = ff;
- if (unlikely(!ff)) {
- fail_count++;
+ if (unlikely(!ff))
continue;
- }
size_t lines = procfile_lines(ff);
if (unlikely(lines < 1)) {
collector_error("%s has no lines.", procfile_filename(ff));
- fail_count++;
continue;
}
- if (do_some) {
- proc_pressure_do_resource_some(ff, i);
- update_pressure_charts(&resources[i].some);
- }
- if (do_full && lines > 2) {
- proc_pressure_do_resource_full(ff, i);
- update_pressure_charts(&resources[i].full);
+ for(size_t l = 0; l < lines ;l++) {
+ const char *key = procfile_lineword(ff, l, 0);
+ if(strcmp(key, "some") == 0) {
+ if(do_some) {
+ proc_pressure_do_resource_some(ff, i, l);
+ update_pressure_charts(&resources[i].some);
+ ok_count++;
+ }
+ }
+ else if(strcmp(key, "full") == 0) {
+ if(do_full) {
+ proc_pressure_do_resource_full(ff, i, l);
+ update_pressure_charts(&resources[i].full);
+ ok_count++;
+ }
+ }
}
}
- if (PRESSURE_NUM_RESOURCES == fail_count) {
+ if(!ok_count)
return 1;
- }
return 0;
}
diff --git a/collectors/proc.plugin/proc_pressure.h b/collectors/proc.plugin/proc_pressure.h
index 0cb233152..2e5cab2cc 100644
--- a/collectors/proc.plugin/proc_pressure.h
+++ b/collectors/proc.plugin/proc_pressure.h
@@ -3,13 +3,14 @@
#ifndef NETDATA_PROC_PRESSURE_H
#define NETDATA_PROC_PRESSURE_H
-#define PRESSURE_NUM_RESOURCES 3
+#define PRESSURE_NUM_RESOURCES 4
struct pressure {
int updated;
char *filename;
struct pressure_charts {
+ bool available;
int enabled;
struct pressure_share_time_chart {
diff --git a/collectors/proc.plugin/proc_stat.c b/collectors/proc.plugin/proc_stat.c
index f0f319351..a4f76796b 100644
--- a/collectors/proc.plugin/proc_stat.c
+++ b/collectors/proc.plugin/proc_stat.c
@@ -494,7 +494,7 @@ int do_proc_stat(int update_every, usec_t dt) {
do_processes = config_get_boolean("plugin:proc:/proc/stat", "processes running", CONFIG_BOOLEAN_YES);
// give sane defaults based on the number of processors
- if(unlikely(get_system_cpus() > 50)) {
+ if(unlikely(get_system_cpus() > 128)) {
// the system has too many processors
keep_per_core_fds_open = CONFIG_BOOLEAN_NO;
do_core_throttle_count = CONFIG_BOOLEAN_NO;
diff --git a/collectors/proc.plugin/proc_vmstat.c b/collectors/proc.plugin/proc_vmstat.c
index ca56e900e..b44733b6a 100644
--- a/collectors/proc.plugin/proc_vmstat.c
+++ b/collectors/proc.plugin/proc_vmstat.c
@@ -271,7 +271,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
if(unlikely(!st_swapio)) {
st_swapio = rrdset_create_localhost(
- "system"
+ "mem"
, "swapio"
, NULL
, "swap"
@@ -280,7 +280,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
, "KiB/s"
, PLUGIN_PROC_NAME
, PLUGIN_PROC_MODULE_VMSTAT_NAME
- , NETDATA_CHART_PRIO_SYSTEM_SWAPIO
+ , NETDATA_CHART_PRIO_MEM_SWAPIO
, update_every
, RRDSET_TYPE_AREA
);
@@ -336,7 +336,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
"mem"
, "pgfaults"
, NULL
- , "system"
+ , "page faults"
, NULL
, "Memory Page Faults"
, "faults/s"
@@ -372,7 +372,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
"mem"
, "oom_kill"
, NULL
- , "system"
+ , "OOM kills"
, NULL
, "Out of Memory Kills"
, "kills/s"
@@ -505,7 +505,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
if(unlikely(!st_zswapio)) {
st_zswapio = rrdset_create_localhost(
- "system"
+ "mem"
, "zswapio"
, NULL
, "zswap"
@@ -514,7 +514,7 @@ int do_proc_vmstat(int update_every, usec_t dt) {
, "KiB/s"
, PLUGIN_PROC_NAME
, PLUGIN_PROC_MODULE_VMSTAT_NAME
- , NETDATA_CHART_PRIO_SYSTEM_ZSWAPIO
+ , NETDATA_CHART_PRIO_MEM_ZSWAPIO
, update_every
, RRDSET_TYPE_AREA
);
diff --git a/collectors/proc.plugin/sys_class_drm.c b/collectors/proc.plugin/sys_class_drm.c
new file mode 100644
index 000000000..284662cf6
--- /dev/null
+++ b/collectors/proc.plugin/sys_class_drm.c
@@ -0,0 +1,1179 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "plugin_proc.h"
+
+#define PLUGIN_PROC_MODULE_DRM_NAME "/sys/class/drm"
+#define CONFIG_SECTION_PLUGIN_PROC_DRM "plugin:proc:/sys/class/drm"
+#define AMDGPU_CHART_TYPE "amdgpu"
+
+struct amdgpu_id_struct {
+ unsigned long long asic_id;
+ unsigned long long pci_rev_id;
+ const char *marketing_name;
+};
+
+/*
+ * About amdgpu_ids list:
+ * ------------------------------------------------------------------------
+ * Copyright (C) 2023 Advanced Micro Devices, Inc. All rights reserved.
+ *
+ * The list is copied from:
+ * https://raw.githubusercontent.com/Syllo/nvtop/master/src/amdgpu_ids.h
+ *
+ * which is modified from libdrm (MIT License):
+ *
+ * URL: https://gitlab.freedesktop.org/mesa/drm/-/blob/main/data/amdgpu.ids
+ * ------------------------------------------------------------------------
+ * **IMPORTANT**: The amdgpu_ids has to be modified after new GPU releases.
+ * ------------------------------------------------------------------------*/
+
+static const struct amdgpu_id_struct amdgpu_ids[] = {
+ {0x1309, 0x00, "AMD Radeon R7 Graphics"},
+ {0x130A, 0x00, "AMD Radeon R6 Graphics"},
+ {0x130B, 0x00, "AMD Radeon R4 Graphics"},
+ {0x130C, 0x00, "AMD Radeon R7 Graphics"},
+ {0x130D, 0x00, "AMD Radeon R6 Graphics"},
+ {0x130E, 0x00, "AMD Radeon R5 Graphics"},
+ {0x130F, 0x00, "AMD Radeon R7 Graphics"},
+ {0x130F, 0xD4, "AMD Radeon R7 Graphics"},
+ {0x130F, 0xD5, "AMD Radeon R7 Graphics"},
+ {0x130F, 0xD6, "AMD Radeon R7 Graphics"},
+ {0x130F, 0xD7, "AMD Radeon R7 Graphics"},
+ {0x1313, 0x00, "AMD Radeon R7 Graphics"},
+ {0x1313, 0xD4, "AMD Radeon R7 Graphics"},
+ {0x1313, 0xD5, "AMD Radeon R7 Graphics"},
+ {0x1313, 0xD6, "AMD Radeon R7 Graphics"},
+ {0x1315, 0x00, "AMD Radeon R5 Graphics"},
+ {0x1315, 0xD4, "AMD Radeon R5 Graphics"},
+ {0x1315, 0xD5, "AMD Radeon R5 Graphics"},
+ {0x1315, 0xD6, "AMD Radeon R5 Graphics"},
+ {0x1315, 0xD7, "AMD Radeon R5 Graphics"},
+ {0x1316, 0x00, "AMD Radeon R5 Graphics"},
+ {0x1318, 0x00, "AMD Radeon R5 Graphics"},
+ {0x131B, 0x00, "AMD Radeon R4 Graphics"},
+ {0x131C, 0x00, "AMD Radeon R7 Graphics"},
+ {0x131D, 0x00, "AMD Radeon R6 Graphics"},
+ {0x15D8, 0x00, "AMD Radeon RX Vega 8 Graphics WS"},
+ {0x15D8, 0x91, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0x91, "AMD Ryzen Embedded R1606G with Radeon Vega Gfx"},
+ {0x15D8, 0x92, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0x92, "AMD Ryzen Embedded R1505G with Radeon Vega Gfx"},
+ {0x15D8, 0x93, "AMD Radeon Vega 1 Graphics"},
+ {0x15D8, 0xA1, "AMD Radeon Vega 10 Graphics"},
+ {0x15D8, 0xA2, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xA3, "AMD Radeon Vega 6 Graphics"},
+ {0x15D8, 0xA4, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xB1, "AMD Radeon Vega 10 Graphics"},
+ {0x15D8, 0xB2, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xB3, "AMD Radeon Vega 6 Graphics"},
+ {0x15D8, 0xB4, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xC1, "AMD Radeon Vega 10 Graphics"},
+ {0x15D8, 0xC2, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xC3, "AMD Radeon Vega 6 Graphics"},
+ {0x15D8, 0xC4, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xC5, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xC8, "AMD Radeon Vega 11 Graphics"},
+ {0x15D8, 0xC9, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xCA, "AMD Radeon Vega 11 Graphics"},
+ {0x15D8, 0xCB, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xCC, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xCE, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xCF, "AMD Ryzen Embedded R1305G with Radeon Vega Gfx"},
+ {0x15D8, 0xD1, "AMD Radeon Vega 10 Graphics"},
+ {0x15D8, 0xD2, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xD3, "AMD Radeon Vega 6 Graphics"},
+ {0x15D8, 0xD4, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xD8, "AMD Radeon Vega 11 Graphics"},
+ {0x15D8, 0xD9, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xDA, "AMD Radeon Vega 11 Graphics"},
+ {0x15D8, 0xDB, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xDB, "AMD Radeon Vega 8 Graphics"},
+ {0x15D8, 0xDC, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xDD, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xDE, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xDF, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xE3, "AMD Radeon Vega 3 Graphics"},
+ {0x15D8, 0xE4, "AMD Ryzen Embedded R1102G with Radeon Vega Gfx"},
+ {0x15DD, 0x81, "AMD Ryzen Embedded V1807B with Radeon Vega Gfx"},
+ {0x15DD, 0x82, "AMD Ryzen Embedded V1756B with Radeon Vega Gfx"},
+ {0x15DD, 0x83, "AMD Ryzen Embedded V1605B with Radeon Vega Gfx"},
+ {0x15DD, 0x84, "AMD Radeon Vega 6 Graphics"},
+ {0x15DD, 0x85, "AMD Ryzen Embedded V1202B with Radeon Vega Gfx"},
+ {0x15DD, 0x86, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0x88, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xC1, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0xC2, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xC3, "AMD Radeon Vega 3 / 10 Graphics"},
+ {0x15DD, 0xC4, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xC5, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xC6, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0xC8, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xC9, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0xCA, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xCB, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xCC, "AMD Radeon Vega 6 Graphics"},
+ {0x15DD, 0xCE, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xCF, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xD0, "AMD Radeon Vega 10 Graphics"},
+ {0x15DD, 0xD1, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xD3, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0xD5, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xD6, "AMD Radeon Vega 11 Graphics"},
+ {0x15DD, 0xD7, "AMD Radeon Vega 8 Graphics"},
+ {0x15DD, 0xD8, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xD9, "AMD Radeon Vega 6 Graphics"},
+ {0x15DD, 0xE1, "AMD Radeon Vega 3 Graphics"},
+ {0x15DD, 0xE2, "AMD Radeon Vega 3 Graphics"},
+ {0x163F, 0xAE, "AMD Custom GPU 0405"},
+ {0x6600, 0x00, "AMD Radeon HD 8600 / 8700M"},
+ {0x6600, 0x81, "AMD Radeon R7 M370"},
+ {0x6601, 0x00, "AMD Radeon HD 8500M / 8700M"},
+ {0x6604, 0x00, "AMD Radeon R7 M265 Series"},
+ {0x6604, 0x81, "AMD Radeon R7 M350"},
+ {0x6605, 0x00, "AMD Radeon R7 M260 Series"},
+ {0x6605, 0x81, "AMD Radeon R7 M340"},
+ {0x6606, 0x00, "AMD Radeon HD 8790M"},
+ {0x6607, 0x00, "AMD Radeon R5 M240"},
+ {0x6608, 0x00, "AMD FirePro W2100"},
+ {0x6610, 0x00, "AMD Radeon R7 200 Series"},
+ {0x6610, 0x81, "AMD Radeon R7 350"},
+ {0x6610, 0x83, "AMD Radeon R5 340"},
+ {0x6610, 0x87, "AMD Radeon R7 200 Series"},
+ {0x6611, 0x00, "AMD Radeon R7 200 Series"},
+ {0x6611, 0x87, "AMD Radeon R7 200 Series"},
+ {0x6613, 0x00, "AMD Radeon R7 200 Series"},
+ {0x6617, 0x00, "AMD Radeon R7 240 Series"},
+ {0x6617, 0x87, "AMD Radeon R7 200 Series"},
+ {0x6617, 0xC7, "AMD Radeon R7 240 Series"},
+ {0x6640, 0x00, "AMD Radeon HD 8950"},
+ {0x6640, 0x80, "AMD Radeon R9 M380"},
+ {0x6646, 0x00, "AMD Radeon R9 M280X"},
+ {0x6646, 0x80, "AMD Radeon R9 M385"},
+ {0x6646, 0x80, "AMD Radeon R9 M470X"},
+ {0x6647, 0x00, "AMD Radeon R9 M200X Series"},
+ {0x6647, 0x80, "AMD Radeon R9 M380"},
+ {0x6649, 0x00, "AMD FirePro W5100"},
+ {0x6658, 0x00, "AMD Radeon R7 200 Series"},
+ {0x665C, 0x00, "AMD Radeon HD 7700 Series"},
+ {0x665D, 0x00, "AMD Radeon R7 200 Series"},
+ {0x665F, 0x81, "AMD Radeon R7 360 Series"},
+ {0x6660, 0x00, "AMD Radeon HD 8600M Series"},
+ {0x6660, 0x81, "AMD Radeon R5 M335"},
+ {0x6660, 0x83, "AMD Radeon R5 M330"},
+ {0x6663, 0x00, "AMD Radeon HD 8500M Series"},
+ {0x6663, 0x83, "AMD Radeon R5 M320"},
+ {0x6664, 0x00, "AMD Radeon R5 M200 Series"},
+ {0x6665, 0x00, "AMD Radeon R5 M230 Series"},
+ {0x6665, 0x83, "AMD Radeon R5 M320"},
+ {0x6665, 0xC3, "AMD Radeon R5 M435"},
+ {0x6666, 0x00, "AMD Radeon R5 M200 Series"},
+ {0x6667, 0x00, "AMD Radeon R5 M200 Series"},
+ {0x666F, 0x00, "AMD Radeon HD 8500M"},
+ {0x66A1, 0x02, "AMD Instinct MI60 / MI50"},
+ {0x66A1, 0x06, "AMD Radeon Pro VII"},
+ {0x66AF, 0xC1, "AMD Radeon VII"},
+ {0x6780, 0x00, "AMD FirePro W9000"},
+ {0x6784, 0x00, "ATI FirePro V (FireGL V) Graphics Adapter"},
+ {0x6788, 0x00, "ATI FirePro V (FireGL V) Graphics Adapter"},
+ {0x678A, 0x00, "AMD FirePro W8000"},
+ {0x6798, 0x00, "AMD Radeon R9 200 / HD 7900 Series"},
+ {0x6799, 0x00, "AMD Radeon HD 7900 Series"},
+ {0x679A, 0x00, "AMD Radeon HD 7900 Series"},
+ {0x679B, 0x00, "AMD Radeon HD 7900 Series"},
+ {0x679E, 0x00, "AMD Radeon HD 7800 Series"},
+ {0x67A0, 0x00, "AMD Radeon FirePro W9100"},
+ {0x67A1, 0x00, "AMD Radeon FirePro W8100"},
+ {0x67B0, 0x00, "AMD Radeon R9 200 Series"},
+ {0x67B0, 0x80, "AMD Radeon R9 390 Series"},
+ {0x67B1, 0x00, "AMD Radeon R9 200 Series"},
+ {0x67B1, 0x80, "AMD Radeon R9 390 Series"},
+ {0x67B9, 0x00, "AMD Radeon R9 200 Series"},
+ {0x67C0, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
+ {0x67C0, 0x80, "AMD Radeon E9550"},
+ {0x67C2, 0x01, "AMD Radeon Pro V7350x2"},
+ {0x67C2, 0x02, "AMD Radeon Pro V7300X"},
+ {0x67C4, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
+ {0x67C4, 0x80, "AMD Radeon E9560 / E9565 Graphics"},
+ {0x67C7, 0x00, "AMD Radeon Pro WX 5100 Graphics"},
+ {0x67C7, 0x80, "AMD Radeon E9390 Graphics"},
+ {0x67D0, 0x01, "AMD Radeon Pro V7350x2"},
+ {0x67D0, 0x02, "AMD Radeon Pro V7300X"},
+ {0x67DF, 0xC0, "AMD Radeon Pro 580X"},
+ {0x67DF, 0xC1, "AMD Radeon RX 580 Series"},
+ {0x67DF, 0xC2, "AMD Radeon RX 570 Series"},
+ {0x67DF, 0xC3, "AMD Radeon RX 580 Series"},
+ {0x67DF, 0xC4, "AMD Radeon RX 480 Graphics"},
+ {0x67DF, 0xC5, "AMD Radeon RX 470 Graphics"},
+ {0x67DF, 0xC6, "AMD Radeon RX 570 Series"},
+ {0x67DF, 0xC7, "AMD Radeon RX 480 Graphics"},
+ {0x67DF, 0xCF, "AMD Radeon RX 470 Graphics"},
+ {0x67DF, 0xD7, "AMD Radeon RX 470 Graphics"},
+ {0x67DF, 0xE0, "AMD Radeon RX 470 Series"},
+ {0x67DF, 0xE1, "AMD Radeon RX 590 Series"},
+ {0x67DF, 0xE3, "AMD Radeon RX Series"},
+ {0x67DF, 0xE7, "AMD Radeon RX 580 Series"},
+ {0x67DF, 0xEB, "AMD Radeon Pro 580X"},
+ {0x67DF, 0xEF, "AMD Radeon RX 570 Series"},
+ {0x67DF, 0xF7, "AMD Radeon RX P30PH"},
+ {0x67DF, 0xFF, "AMD Radeon RX 470 Series"},
+ {0x67E0, 0x00, "AMD Radeon Pro WX Series"},
+ {0x67E3, 0x00, "AMD Radeon Pro WX 4100"},
+ {0x67E8, 0x00, "AMD Radeon Pro WX Series"},
+ {0x67E8, 0x01, "AMD Radeon Pro WX Series"},
+ {0x67E8, 0x80, "AMD Radeon E9260 Graphics"},
+ {0x67EB, 0x00, "AMD Radeon Pro V5300X"},
+ {0x67EF, 0xC0, "AMD Radeon RX Graphics"},
+ {0x67EF, 0xC1, "AMD Radeon RX 460 Graphics"},
+ {0x67EF, 0xC2, "AMD Radeon Pro Series"},
+ {0x67EF, 0xC3, "AMD Radeon RX Series"},
+ {0x67EF, 0xC5, "AMD Radeon RX 460 Graphics"},
+ {0x67EF, 0xC7, "AMD Radeon RX Graphics"},
+ {0x67EF, 0xCF, "AMD Radeon RX 460 Graphics"},
+ {0x67EF, 0xE0, "AMD Radeon RX 560 Series"},
+ {0x67EF, 0xE1, "AMD Radeon RX Series"},
+ {0x67EF, 0xE2, "AMD Radeon RX 560X"},
+ {0x67EF, 0xE3, "AMD Radeon RX Series"},
+ {0x67EF, 0xE5, "AMD Radeon RX 560 Series"},
+ {0x67EF, 0xE7, "AMD Radeon RX 560 Series"},
+ {0x67EF, 0xEF, "AMD Radeon 550 Series"},
+ {0x67EF, 0xFF, "AMD Radeon RX 460 Graphics"},
+ {0x67FF, 0xC0, "AMD Radeon Pro 465"},
+ {0x67FF, 0xC1, "AMD Radeon RX 560 Series"},
+ {0x67FF, 0xCF, "AMD Radeon RX 560 Series"},
+ {0x67FF, 0xEF, "AMD Radeon RX 560 Series"},
+ {0x67FF, 0xFF, "AMD Radeon RX 550 Series"},
+ {0x6800, 0x00, "AMD Radeon HD 7970M"},
+ {0x6801, 0x00, "AMD Radeon HD 8970M"},
+ {0x6806, 0x00, "AMD Radeon R9 M290X"},
+ {0x6808, 0x00, "AMD FirePro W7000"},
+ {0x6808, 0x00, "ATI FirePro V (FireGL V) Graphics Adapter"},
+ {0x6809, 0x00, "ATI FirePro W5000"},
+ {0x6810, 0x00, "AMD Radeon R9 200 Series"},
+ {0x6810, 0x81, "AMD Radeon R9 370 Series"},
+ {0x6811, 0x00, "AMD Radeon R9 200 Series"},
+ {0x6811, 0x81, "AMD Radeon R7 370 Series"},
+ {0x6818, 0x00, "AMD Radeon HD 7800 Series"},
+ {0x6819, 0x00, "AMD Radeon HD 7800 Series"},
+ {0x6820, 0x00, "AMD Radeon R9 M275X"},
+ {0x6820, 0x81, "AMD Radeon R9 M375"},
+ {0x6820, 0x83, "AMD Radeon R9 M375X"},
+ {0x6821, 0x00, "AMD Radeon R9 M200X Series"},
+ {0x6821, 0x83, "AMD Radeon R9 M370X"},
+ {0x6821, 0x87, "AMD Radeon R7 M380"},
+ {0x6822, 0x00, "AMD Radeon E8860"},
+ {0x6823, 0x00, "AMD Radeon R9 M200X Series"},
+ {0x6825, 0x00, "AMD Radeon HD 7800M Series"},
+ {0x6826, 0x00, "AMD Radeon HD 7700M Series"},
+ {0x6827, 0x00, "AMD Radeon HD 7800M Series"},
+ {0x6828, 0x00, "AMD FirePro W600"},
+ {0x682B, 0x00, "AMD Radeon HD 8800M Series"},
+ {0x682B, 0x87, "AMD Radeon R9 M360"},
+ {0x682C, 0x00, "AMD FirePro W4100"},
+ {0x682D, 0x00, "AMD Radeon HD 7700M Series"},
+ {0x682F, 0x00, "AMD Radeon HD 7700M Series"},
+ {0x6830, 0x00, "AMD Radeon 7800M Series"},
+ {0x6831, 0x00, "AMD Radeon 7700M Series"},
+ {0x6835, 0x00, "AMD Radeon R7 Series / HD 9000 Series"},
+ {0x6837, 0x00, "AMD Radeon HD 7700 Series"},
+ {0x683D, 0x00, "AMD Radeon HD 7700 Series"},
+ {0x683F, 0x00, "AMD Radeon HD 7700 Series"},
+ {0x684C, 0x00, "ATI FirePro V (FireGL V) Graphics Adapter"},
+ {0x6860, 0x00, "AMD Radeon Instinct MI25"},
+ {0x6860, 0x01, "AMD Radeon Instinct MI25"},
+ {0x6860, 0x02, "AMD Radeon Instinct MI25"},
+ {0x6860, 0x03, "AMD Radeon Pro V340"},
+ {0x6860, 0x04, "AMD Radeon Instinct MI25x2"},
+ {0x6860, 0x07, "AMD Radeon Pro V320"},
+ {0x6861, 0x00, "AMD Radeon Pro WX 9100"},
+ {0x6862, 0x00, "AMD Radeon Pro SSG"},
+ {0x6863, 0x00, "AMD Radeon Vega Frontier Edition"},
+ {0x6864, 0x03, "AMD Radeon Pro V340"},
+ {0x6864, 0x04, "AMD Radeon Instinct MI25x2"},
+ {0x6864, 0x05, "AMD Radeon Pro V340"},
+ {0x6868, 0x00, "AMD Radeon Pro WX 8200"},
+ {0x686C, 0x00, "AMD Radeon Instinct MI25 MxGPU"},
+ {0x686C, 0x01, "AMD Radeon Instinct MI25 MxGPU"},
+ {0x686C, 0x02, "AMD Radeon Instinct MI25 MxGPU"},
+ {0x686C, 0x03, "AMD Radeon Pro V340 MxGPU"},
+ {0x686C, 0x04, "AMD Radeon Instinct MI25x2 MxGPU"},
+ {0x686C, 0x05, "AMD Radeon Pro V340L MxGPU"},
+ {0x686C, 0x06, "AMD Radeon Instinct MI25 MxGPU"},
+ {0x687F, 0x01, "AMD Radeon RX Vega"},
+ {0x687F, 0xC0, "AMD Radeon RX Vega"},
+ {0x687F, 0xC1, "AMD Radeon RX Vega"},
+ {0x687F, 0xC3, "AMD Radeon RX Vega"},
+ {0x687F, 0xC7, "AMD Radeon RX Vega"},
+ {0x6900, 0x00, "AMD Radeon R7 M260"},
+ {0x6900, 0x81, "AMD Radeon R7 M360"},
+ {0x6900, 0x83, "AMD Radeon R7 M340"},
+ {0x6900, 0xC1, "AMD Radeon R5 M465 Series"},
+ {0x6900, 0xC3, "AMD Radeon R5 M445 Series"},
+ {0x6900, 0xD1, "AMD Radeon 530 Series"},
+ {0x6900, 0xD3, "AMD Radeon 530 Series"},
+ {0x6901, 0x00, "AMD Radeon R5 M255"},
+ {0x6902, 0x00, "AMD Radeon Series"},
+ {0x6907, 0x00, "AMD Radeon R5 M255"},
+ {0x6907, 0x87, "AMD Radeon R5 M315"},
+ {0x6920, 0x00, "AMD Radeon R9 M395X"},
+ {0x6920, 0x01, "AMD Radeon R9 M390X"},
+ {0x6921, 0x00, "AMD Radeon R9 M390X"},
+ {0x6929, 0x00, "AMD FirePro S7150"},
+ {0x6929, 0x01, "AMD FirePro S7100X"},
+ {0x692B, 0x00, "AMD FirePro W7100"},
+ {0x6938, 0x00, "AMD Radeon R9 200 Series"},
+ {0x6938, 0xF0, "AMD Radeon R9 200 Series"},
+ {0x6938, 0xF1, "AMD Radeon R9 380 Series"},
+ {0x6939, 0x00, "AMD Radeon R9 200 Series"},
+ {0x6939, 0xF0, "AMD Radeon R9 200 Series"},
+ {0x6939, 0xF1, "AMD Radeon R9 380 Series"},
+ {0x694C, 0xC0, "AMD Radeon RX Vega M GH Graphics"},
+ {0x694E, 0xC0, "AMD Radeon RX Vega M GL Graphics"},
+ {0x6980, 0x00, "AMD Radeon Pro WX 3100"},
+ {0x6981, 0x00, "AMD Radeon Pro WX 3200 Series"},
+ {0x6981, 0x01, "AMD Radeon Pro WX 3200 Series"},
+ {0x6981, 0x10, "AMD Radeon Pro WX 3200 Series"},
+ {0x6985, 0x00, "AMD Radeon Pro WX 3100"},
+ {0x6986, 0x00, "AMD Radeon Pro WX 2100"},
+ {0x6987, 0x80, "AMD Embedded Radeon E9171"},
+ {0x6987, 0xC0, "AMD Radeon 550X Series"},
+ {0x6987, 0xC1, "AMD Radeon RX 640"},
+ {0x6987, 0xC3, "AMD Radeon 540X Series"},
+ {0x6987, 0xC7, "AMD Radeon 540"},
+ {0x6995, 0x00, "AMD Radeon Pro WX 2100"},
+ {0x6997, 0x00, "AMD Radeon Pro WX 2100"},
+ {0x699F, 0x81, "AMD Embedded Radeon E9170 Series"},
+ {0x699F, 0xC0, "AMD Radeon 500 Series"},
+ {0x699F, 0xC1, "AMD Radeon 540 Series"},
+ {0x699F, 0xC3, "AMD Radeon 500 Series"},
+ {0x699F, 0xC7, "AMD Radeon RX 550 / 550 Series"},
+ {0x699F, 0xC9, "AMD Radeon 540"},
+ {0x6FDF, 0xE7, "AMD Radeon RX 590 GME"},
+ {0x6FDF, 0xEF, "AMD Radeon RX 580 2048SP"},
+ {0x7300, 0xC1, "AMD FirePro S9300 x2"},
+ {0x7300, 0xC8, "AMD Radeon R9 Fury Series"},
+ {0x7300, 0xC9, "AMD Radeon Pro Duo"},
+ {0x7300, 0xCA, "AMD Radeon R9 Fury Series"},
+ {0x7300, 0xCB, "AMD Radeon R9 Fury Series"},
+ {0x7312, 0x00, "AMD Radeon Pro W5700"},
+ {0x731E, 0xC6, "AMD Radeon RX 5700XTB"},
+ {0x731E, 0xC7, "AMD Radeon RX 5700B"},
+ {0x731F, 0xC0, "AMD Radeon RX 5700 XT 50th Anniversary"},
+ {0x731F, 0xC1, "AMD Radeon RX 5700 XT"},
+ {0x731F, 0xC2, "AMD Radeon RX 5600M"},
+ {0x731F, 0xC3, "AMD Radeon RX 5700M"},
+ {0x731F, 0xC4, "AMD Radeon RX 5700"},
+ {0x731F, 0xC5, "AMD Radeon RX 5700 XT"},
+ {0x731F, 0xCA, "AMD Radeon RX 5600 XT"},
+ {0x731F, 0xCB, "AMD Radeon RX 5600 OEM"},
+ {0x7340, 0xC1, "AMD Radeon RX 5500M"},
+ {0x7340, 0xC3, "AMD Radeon RX 5300M"},
+ {0x7340, 0xC5, "AMD Radeon RX 5500 XT"},
+ {0x7340, 0xC7, "AMD Radeon RX 5500"},
+ {0x7340, 0xC9, "AMD Radeon RX 5500XTB"},
+ {0x7340, 0xCF, "AMD Radeon RX 5300"},
+ {0x7341, 0x00, "AMD Radeon Pro W5500"},
+ {0x7347, 0x00, "AMD Radeon Pro W5500M"},
+ {0x7360, 0x41, "AMD Radeon Pro 5600M"},
+ {0x7360, 0xC3, "AMD Radeon Pro V520"},
+ {0x738C, 0x01, "AMD Instinct MI100"},
+ {0x73A3, 0x00, "AMD Radeon Pro W6800"},
+ {0x73A5, 0xC0, "AMD Radeon RX 6950 XT"},
+ {0x73AF, 0xC0, "AMD Radeon RX 6900 XT"},
+ {0x73BF, 0xC0, "AMD Radeon RX 6900 XT"},
+ {0x73BF, 0xC1, "AMD Radeon RX 6800 XT"},
+ {0x73BF, 0xC3, "AMD Radeon RX 6800"},
+ {0x73DF, 0xC0, "AMD Radeon RX 6750 XT"},
+ {0x73DF, 0xC1, "AMD Radeon RX 6700 XT"},
+ {0x73DF, 0xC2, "AMD Radeon RX 6800M"},
+ {0x73DF, 0xC3, "AMD Radeon RX 6800M"},
+ {0x73DF, 0xC5, "AMD Radeon RX 6700 XT"},
+ {0x73DF, 0xCF, "AMD Radeon RX 6700M"},
+ {0x73DF, 0xD7, "AMD TDC-235"},
+ {0x73E1, 0x00, "AMD Radeon Pro W6600M"},
+ {0x73E3, 0x00, "AMD Radeon Pro W6600"},
+ {0x73EF, 0xC0, "AMD Radeon RX 6800S"},
+ {0x73EF, 0xC1, "AMD Radeon RX 6650 XT"},
+ {0x73EF, 0xC2, "AMD Radeon RX 6700S"},
+ {0x73EF, 0xC3, "AMD Radeon RX 6650M"},
+ {0x73EF, 0xC4, "AMD Radeon RX 6650M XT"},
+ {0x73FF, 0xC1, "AMD Radeon RX 6600 XT"},
+ {0x73FF, 0xC3, "AMD Radeon RX 6600M"},
+ {0x73FF, 0xC7, "AMD Radeon RX 6600"},
+ {0x73FF, 0xCB, "AMD Radeon RX 6600S"},
+ {0x7408, 0x00, "AMD Instinct MI250X"},
+ {0x740C, 0x01, "AMD Instinct MI250X / MI250"},
+ {0x740F, 0x02, "AMD Instinct MI210"},
+ {0x7421, 0x00, "AMD Radeon Pro W6500M"},
+ {0x7422, 0x00, "AMD Radeon Pro W6400"},
+ {0x7423, 0x00, "AMD Radeon Pro W6300M"},
+ {0x7423, 0x01, "AMD Radeon Pro W6300"},
+ {0x7424, 0x00, "AMD Radeon RX 6300"},
+ {0x743F, 0xC1, "AMD Radeon RX 6500 XT"},
+ {0x743F, 0xC3, "AMD Radeon RX 6500"},
+ {0x743F, 0xC3, "AMD Radeon RX 6500M"},
+ {0x743F, 0xC7, "AMD Radeon RX 6400"},
+ {0x743F, 0xCF, "AMD Radeon RX 6300M"},
+ {0x744C, 0xC8, "AMD Radeon RX 7900 XTX"},
+ {0x744C, 0xCC, "AMD Radeon RX 7900 XT"},
+ {0x7480, 0xC1, "AMD Radeon RX 7700S"},
+ {0x7480, 0xC3, "AMD Radeon RX 7600S"},
+ {0x7480, 0xC7, "AMD Radeon RX 7600M XT"},
+ {0x7483, 0xCF, "AMD Radeon RX 7600M"},
+ {0x9830, 0x00, "AMD Radeon HD 8400 / R3 Series"},
+ {0x9831, 0x00, "AMD Radeon HD 8400E"},
+ {0x9832, 0x00, "AMD Radeon HD 8330"},
+ {0x9833, 0x00, "AMD Radeon HD 8330E"},
+ {0x9834, 0x00, "AMD Radeon HD 8210"},
+ {0x9835, 0x00, "AMD Radeon HD 8210E"},
+ {0x9836, 0x00, "AMD Radeon HD 8200 / R3 Series"},
+ {0x9837, 0x00, "AMD Radeon HD 8280E"},
+ {0x9838, 0x00, "AMD Radeon HD 8200 / R3 series"},
+ {0x9839, 0x00, "AMD Radeon HD 8180"},
+ {0x983D, 0x00, "AMD Radeon HD 8250"},
+ {0x9850, 0x00, "AMD Radeon R3 Graphics"},
+ {0x9850, 0x03, "AMD Radeon R3 Graphics"},
+ {0x9850, 0x40, "AMD Radeon R2 Graphics"},
+ {0x9850, 0x45, "AMD Radeon R3 Graphics"},
+ {0x9851, 0x00, "AMD Radeon R4 Graphics"},
+ {0x9851, 0x01, "AMD Radeon R5E Graphics"},
+ {0x9851, 0x05, "AMD Radeon R5 Graphics"},
+ {0x9851, 0x06, "AMD Radeon R5E Graphics"},
+ {0x9851, 0x40, "AMD Radeon R4 Graphics"},
+ {0x9851, 0x45, "AMD Radeon R5 Graphics"},
+ {0x9852, 0x00, "AMD Radeon R2 Graphics"},
+ {0x9852, 0x40, "AMD Radeon E1 Graphics"},
+ {0x9853, 0x00, "AMD Radeon R2 Graphics"},
+ {0x9853, 0x01, "AMD Radeon R4E Graphics"},
+ {0x9853, 0x03, "AMD Radeon R2 Graphics"},
+ {0x9853, 0x05, "AMD Radeon R1E Graphics"},
+ {0x9853, 0x06, "AMD Radeon R1E Graphics"},
+ {0x9853, 0x07, "AMD Radeon R1E Graphics"},
+ {0x9853, 0x08, "AMD Radeon R1E Graphics"},
+ {0x9853, 0x40, "AMD Radeon R2 Graphics"},
+ {0x9854, 0x00, "AMD Radeon R3 Graphics"},
+ {0x9854, 0x01, "AMD Radeon R3E Graphics"},
+ {0x9854, 0x02, "AMD Radeon R3 Graphics"},
+ {0x9854, 0x05, "AMD Radeon R2 Graphics"},
+ {0x9854, 0x06, "AMD Radeon R4 Graphics"},
+ {0x9854, 0x07, "AMD Radeon R3 Graphics"},
+ {0x9855, 0x02, "AMD Radeon R6 Graphics"},
+ {0x9855, 0x05, "AMD Radeon R4 Graphics"},
+ {0x9856, 0x00, "AMD Radeon R2 Graphics"},
+ {0x9856, 0x01, "AMD Radeon R2E Graphics"},
+ {0x9856, 0x02, "AMD Radeon R2 Graphics"},
+ {0x9856, 0x05, "AMD Radeon R1E Graphics"},
+ {0x9856, 0x06, "AMD Radeon R2 Graphics"},
+ {0x9856, 0x07, "AMD Radeon R1E Graphics"},
+ {0x9856, 0x08, "AMD Radeon R1E Graphics"},
+ {0x9856, 0x13, "AMD Radeon R1E Graphics"},
+ {0x9874, 0x81, "AMD Radeon R6 Graphics"},
+ {0x9874, 0x84, "AMD Radeon R7 Graphics"},
+ {0x9874, 0x85, "AMD Radeon R6 Graphics"},
+ {0x9874, 0x87, "AMD Radeon R5 Graphics"},
+ {0x9874, 0x88, "AMD Radeon R7E Graphics"},
+ {0x9874, 0x89, "AMD Radeon R6E Graphics"},
+ {0x9874, 0xC4, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xC5, "AMD Radeon R6 Graphics"},
+ {0x9874, 0xC6, "AMD Radeon R6 Graphics"},
+ {0x9874, 0xC7, "AMD Radeon R5 Graphics"},
+ {0x9874, 0xC8, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xC9, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xCA, "AMD Radeon R5 Graphics"},
+ {0x9874, 0xCB, "AMD Radeon R5 Graphics"},
+ {0x9874, 0xCC, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xCD, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xCE, "AMD Radeon R5 Graphics"},
+ {0x9874, 0xE1, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xE2, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xE3, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xE4, "AMD Radeon R7 Graphics"},
+ {0x9874, 0xE5, "AMD Radeon R5 Graphics"},
+ {0x9874, 0xE6, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0x80, "AMD Radeon R5E Graphics"},
+ {0x98E4, 0x81, "AMD Radeon R4E Graphics"},
+ {0x98E4, 0x83, "AMD Radeon R2E Graphics"},
+ {0x98E4, 0x84, "AMD Radeon R2E Graphics"},
+ {0x98E4, 0x86, "AMD Radeon R1E Graphics"},
+ {0x98E4, 0xC0, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xC1, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xC2, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xC4, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xC6, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xC8, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xC9, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xCA, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xD0, "AMD Radeon R2 Graphics"},
+ {0x98E4, 0xD1, "AMD Radeon R2 Graphics"},
+ {0x98E4, 0xD2, "AMD Radeon R2 Graphics"},
+ {0x98E4, 0xD4, "AMD Radeon R2 Graphics"},
+ {0x98E4, 0xD9, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xDA, "AMD Radeon R5 Graphics"},
+ {0x98E4, 0xDB, "AMD Radeon R3 Graphics"},
+ {0x98E4, 0xE1, "AMD Radeon R3 Graphics"},
+ {0x98E4, 0xE2, "AMD Radeon R3 Graphics"},
+ {0x98E4, 0xE9, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xEA, "AMD Radeon R4 Graphics"},
+ {0x98E4, 0xEB, "AMD Radeon R3 Graphics"},
+ {0x98E4, 0xEC, "AMD Radeon R4 Graphics"},
+ {0x0000, 0x00, "unknown AMD GPU"} // this must always be the last item
+};
+
+struct card {
+ const char *pathname;
+ struct amdgpu_id_struct id;
+
+ /* GPU and VRAM utilizations */
+
+ const char *pathname_util_gpu;
+ RRDSET *st_util_gpu;
+ RRDDIM *rd_util_gpu;
+ collected_number util_gpu;
+
+ const char *pathname_util_mem;
+ RRDSET *st_util_mem;
+ RRDDIM *rd_util_mem;
+ collected_number util_mem;
+
+
+ /* GPU and VRAM clock frequencies */
+
+ const char *pathname_clk_gpu;
+ procfile *ff_clk_gpu;
+ RRDSET *st_clk_gpu;
+ RRDDIM *rd_clk_gpu;
+ collected_number clk_gpu;
+
+ const char *pathname_clk_mem;
+ procfile *ff_clk_mem;
+ RRDSET *st_clk_mem;
+ RRDDIM *rd_clk_mem;
+ collected_number clk_mem;
+
+
+ /* GPU memory usage */
+
+ const char *pathname_mem_used_vram;
+ const char *pathname_mem_total_vram;
+
+ RRDSET *st_mem_usage_perc_vram;
+ RRDDIM *rd_mem_used_perc_vram;
+
+ RRDSET *st_mem_usage_vram;
+ RRDDIM *rd_mem_used_vram;
+ RRDDIM *rd_mem_free_vram;
+
+ collected_number used_vram;
+ collected_number total_vram;
+
+
+ const char *pathname_mem_used_vis_vram;
+ const char *pathname_mem_total_vis_vram;
+
+ RRDSET *st_mem_usage_perc_vis_vram;
+ RRDDIM *rd_mem_used_perc_vis_vram;
+
+ RRDSET *st_mem_usage_vis_vram;
+ RRDDIM *rd_mem_used_vis_vram;
+ RRDDIM *rd_mem_free_vis_vram;
+
+ collected_number used_vis_vram;
+ collected_number total_vis_vram;
+
+
+ const char *pathname_mem_used_gtt;
+ const char *pathname_mem_total_gtt;
+
+ RRDSET *st_mem_usage_perc_gtt;
+ RRDDIM *rd_mem_used_perc_gtt;
+
+ RRDSET *st_mem_usage_gtt;
+ RRDDIM *rd_mem_used_gtt;
+ RRDDIM *rd_mem_free_gtt;
+
+ collected_number used_gtt;
+ collected_number total_gtt;
+
+ struct do_rrd_x *do_rrd_x_root;
+
+ struct card *next;
+};
+static struct card *card_root = NULL;
+
+static void card_free(struct card *c){
+ if(c->pathname) freez((void *) c->pathname);
+ if(c->id.marketing_name) freez((void *) c->id.marketing_name);
+
+ /* remove card from linked list */
+ if(c == card_root) card_root = c->next;
+ else {
+ struct card *last;
+ for(last = card_root; last && last->next != c; last = last->next);
+ if(last) last->next = c->next;
+ }
+
+ freez(c);
+}
+
+static int check_card_is_amdgpu(const char *const pathname){
+ int rc = -1;
+
+ procfile *ff = procfile_open(pathname, " ", PROCFILE_FLAG_NO_ERROR_ON_FILE_IO);
+ if(unlikely(!ff)){
+ rc = -1;
+ goto cleanup;
+ }
+
+ ff = procfile_readall(ff);
+ if(unlikely(!ff || procfile_lines(ff) < 1 || procfile_linewords(ff, 0) < 1)){
+ rc = -2;
+ goto cleanup;
+ }
+
+ for(size_t l = 0; l < procfile_lines(ff); l++) {
+ if(!strcmp(procfile_lineword(ff, l, 0), "DRIVER=amdgpu")){
+ rc = 0;
+ goto cleanup;
+ }
+ }
+
+ rc = -3; // no match
+
+cleanup:
+ procfile_close(ff);
+ return rc;
+}
+
+static int read_clk_freq_file(procfile **p_ff, const char *const pathname, collected_number *num){
+ if(unlikely(!*p_ff)){
+ *p_ff = procfile_open(pathname, NULL, PROCFILE_FLAG_NO_ERROR_ON_FILE_IO);
+ if(unlikely(!*p_ff)) return -2;
+ }
+
+ if(unlikely(NULL == (*p_ff = procfile_readall(*p_ff)))) return -3;
+
+ for(size_t l = 0; l < procfile_lines(*p_ff) ; l++) {
+
+ if((*p_ff)->lines->lines[l].words >= 3 && !strcmp(procfile_lineword((*p_ff), l, 2), "*")){
+ char *str_with_units = procfile_lineword((*p_ff), l, 1);
+ char *delim = strchr(str_with_units, 'M');
+ char str_without_units[10];
+ memcpy(str_without_units, str_with_units, delim - str_with_units);
+ *num = str2ll(str_without_units, NULL);
+ return 0;
+ }
+ }
+
+ procfile_close((*p_ff));
+ return -4;
+}
+
+static char *set_id(const char *const suf_1, const char *const suf_2, const char *const suf_3){
+ static char id[RRD_ID_LENGTH_MAX + 1];
+ snprintfz(id, RRD_ID_LENGTH_MAX, "%s_%s_%s", suf_1, suf_2, suf_3);
+ return id;
+}
+
+typedef int (*do_rrd_x_func)(struct card *const c);
+
+struct do_rrd_x {
+ do_rrd_x_func func;
+ struct do_rrd_x *next;
+};
+
+static void add_do_rrd_x(struct card *const c, const do_rrd_x_func func){
+ struct do_rrd_x *const drrd = callocz(1, sizeof(struct do_rrd_x));
+ drrd->func = func;
+ drrd->next = c->do_rrd_x_root;
+ c->do_rrd_x_root = drrd;
+}
+
+static void rm_do_rrd_x(struct card *const c, struct do_rrd_x *const drrd){
+ if(drrd == c->do_rrd_x_root) c->do_rrd_x_root = drrd->next;
+ else {
+ struct do_rrd_x *last;
+ for(last = c->do_rrd_x_root; last && last->next != drrd; last = last->next);
+ if(last) last->next = drrd->next;
+ }
+
+ freez(drrd);
+}
+
+static int do_rrd_util_gpu(struct card *const c){
+ if(likely(!read_single_number_file(c->pathname_util_gpu, (unsigned long long *) &c->util_gpu))){
+ rrddim_set_by_pointer(c->st_util_gpu, c->rd_util_gpu, c->util_gpu);
+ rrdset_done(c->st_util_gpu);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read util_gpu for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_util_gpu);
+ rrdset_is_obsolete(c->st_util_gpu);
+ return 1;
+ }
+}
+
+static int do_rrd_util_mem(struct card *const c){
+ if(likely(!read_single_number_file(c->pathname_util_mem, (unsigned long long *) &c->util_mem))){
+ rrddim_set_by_pointer(c->st_util_mem, c->rd_util_mem, c->util_mem);
+ rrdset_done(c->st_util_mem);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read util_mem for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_util_mem);
+ rrdset_is_obsolete(c->st_util_mem);
+ return 1;
+ }
+}
+
+static int do_rrd_clk_gpu(struct card *const c){
+ if(likely(!read_clk_freq_file(&c->ff_clk_gpu, (char *) c->pathname_clk_gpu, &c->clk_gpu))){
+ rrddim_set_by_pointer(c->st_clk_gpu, c->rd_clk_gpu, c->clk_gpu);
+ rrdset_done(c->st_clk_gpu);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read clk_gpu for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_clk_gpu);
+ rrdset_is_obsolete(c->st_clk_gpu);
+ return 1;
+ }
+}
+
+static int do_rrd_clk_mem(struct card *const c){
+ if(likely(!read_clk_freq_file(&c->ff_clk_mem, (char *) c->pathname_clk_mem, &c->clk_mem))){
+ rrddim_set_by_pointer(c->st_clk_mem, c->rd_clk_mem, c->clk_mem);
+ rrdset_done(c->st_clk_mem);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read clk_mem for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_clk_mem);
+ rrdset_is_obsolete(c->st_clk_mem);
+ return 1;
+ }
+}
+
+static int do_rrd_vram(struct card *const c){
+ if(likely(!read_single_number_file(c->pathname_mem_used_vram, (unsigned long long *) &c->used_vram) &&
+ c->total_vram)){
+ rrddim_set_by_pointer( c->st_mem_usage_perc_vram,
+ c->rd_mem_used_perc_vram,
+ c->used_vram * 10000 / c->total_vram);
+ rrdset_done(c->st_mem_usage_perc_vram);
+
+ rrddim_set_by_pointer(c->st_mem_usage_vram, c->rd_mem_used_vram, c->used_vram);
+ rrddim_set_by_pointer(c->st_mem_usage_vram, c->rd_mem_free_vram, c->total_vram - c->used_vram);
+ rrdset_done(c->st_mem_usage_vram);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read used_vram for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_mem_used_vram);
+ freez((void *) c->pathname_mem_total_vram);
+ rrdset_is_obsolete(c->st_mem_usage_perc_vram);
+ rrdset_is_obsolete(c->st_mem_usage_vram);
+ return 1;
+ }
+}
+
+static int do_rrd_vis_vram(struct card *const c){
+ if(likely(!read_single_number_file(c->pathname_mem_used_vis_vram, (unsigned long long *) &c->used_vis_vram) &&
+ c->total_vis_vram)){
+ rrddim_set_by_pointer( c->st_mem_usage_perc_vis_vram,
+ c->rd_mem_used_perc_vis_vram,
+ c->used_vis_vram * 10000 / c->total_vis_vram);
+ rrdset_done(c->st_mem_usage_perc_vis_vram);
+
+ rrddim_set_by_pointer(c->st_mem_usage_vis_vram, c->rd_mem_used_vis_vram, c->used_vis_vram);
+ rrddim_set_by_pointer(c->st_mem_usage_vis_vram, c->rd_mem_free_vis_vram, c->total_vis_vram - c->used_vis_vram);
+ rrdset_done(c->st_mem_usage_vis_vram);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read used_vis_vram for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_mem_used_vis_vram);
+ freez((void *) c->pathname_mem_total_vis_vram);
+ rrdset_is_obsolete(c->st_mem_usage_perc_vis_vram);
+ rrdset_is_obsolete(c->st_mem_usage_vis_vram);
+ return 1;
+ }
+}
+
+static int do_rrd_gtt(struct card *const c){
+ if(likely(!read_single_number_file(c->pathname_mem_used_gtt, (unsigned long long *) &c->used_gtt) &&
+ c->total_gtt)){
+ rrddim_set_by_pointer( c->st_mem_usage_perc_gtt,
+ c->rd_mem_used_perc_gtt,
+ c->used_gtt * 10000 / c->total_gtt);
+ rrdset_done(c->st_mem_usage_perc_gtt);
+
+ rrddim_set_by_pointer(c->st_mem_usage_gtt, c->rd_mem_used_gtt, c->used_gtt);
+ rrddim_set_by_pointer(c->st_mem_usage_gtt, c->rd_mem_free_gtt, c->total_gtt - c->used_gtt);
+ rrdset_done(c->st_mem_usage_gtt);
+ return 0;
+ }
+ else {
+ collector_error("Cannot read used_gtt for %s: [%s]", c->pathname, c->id.marketing_name);
+ freez((void *) c->pathname_mem_used_gtt);
+ freez((void *) c->pathname_mem_total_gtt);
+ rrdset_is_obsolete(c->st_mem_usage_perc_gtt);
+ rrdset_is_obsolete(c->st_mem_usage_gtt);
+ return 1;
+ }
+}
+
+int do_sys_class_drm(int update_every, usec_t dt) {
+ (void)dt;
+
+ static DIR *drm_dir = NULL;
+
+ int chart_prio = NETDATA_CHART_PRIO_DRM_AMDGPU;
+
+ if(unlikely(!drm_dir)) {
+ char filename[FILENAME_MAX + 1];
+ snprintfz(filename, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/class/drm");
+ char *drm_dir_name = config_get(CONFIG_SECTION_PLUGIN_PROC_DRM, "directory to monitor", filename);
+ if(unlikely(NULL == (drm_dir = opendir(drm_dir_name)))){
+ collector_error("Cannot read directory '%s'", drm_dir_name);
+ return 1;
+ }
+
+ struct dirent *de = NULL;
+ while(likely(de = readdir(drm_dir))) {
+ if( de->d_type == DT_DIR && ((de->d_name[0] == '.' && de->d_name[1] == '\0') ||
+ (de->d_name[0] == '.' && de->d_name[1] == '.' && de->d_name[2] == '\0'))) continue;
+
+ if(de->d_type == DT_LNK && !strncmp(de->d_name, "card", 4) && !strchr(de->d_name, '-')) {
+ char filename[FILENAME_MAX + 1];
+
+ snprintfz(filename, FILENAME_MAX, "%s/%s/%s", drm_dir_name, de->d_name, "device/uevent");
+ if(check_card_is_amdgpu(filename)) continue;
+
+ /* Get static info */
+
+ struct card *const c = callocz(1, sizeof(struct card));
+ snprintfz(filename, FILENAME_MAX, "%s/%s", drm_dir_name, de->d_name);
+ c->pathname = strdupz(filename);
+
+ snprintfz(filename, FILENAME_MAX, "%s/%s", c->pathname, "device/device");
+ if(read_single_base64_or_hex_number_file(filename, &c->id.asic_id)){
+ collector_error("Cannot read asic_id from '%s'", filename);
+ card_free(c);
+ continue;
+ }
+
+ snprintfz(filename, FILENAME_MAX, "%s/%s", c->pathname, "device/revision");
+ if(read_single_base64_or_hex_number_file(filename, &c->id.pci_rev_id)){
+ collector_error("Cannot read pci_rev_id from '%s'", filename);
+ card_free(c);
+ continue;
+ }
+
+ for(int i = 0; amdgpu_ids[i].asic_id; i++){
+ if(c->id.asic_id == amdgpu_ids[i].asic_id && c->id.pci_rev_id == amdgpu_ids[i].pci_rev_id){
+ c->id.marketing_name = strdupz(amdgpu_ids[i].marketing_name);
+ break;
+ }
+ }
+ if(!c->id.marketing_name)
+ c->id.marketing_name = strdupz(amdgpu_ids[sizeof(amdgpu_ids)/sizeof(amdgpu_ids[0]) - 1].marketing_name);
+
+
+ collected_number tmp_val;
+ #define set_prop_pathname(prop_filename, prop_pathname, p_ff){ \
+ snprintfz(filename, FILENAME_MAX, "%s/%s", c->pathname, prop_filename); \
+ if((p_ff && !read_clk_freq_file(p_ff, filename, &tmp_val)) || \
+ !read_single_number_file(filename, (unsigned long long *) &tmp_val)) \
+ prop_pathname = strdupz(filename); \
+ else \
+ collector_info("Cannot read file '%s'", filename); \
+ }
+
+ /* Initialize GPU and VRAM utilization metrics */
+
+ set_prop_pathname("device/gpu_busy_percent", c->pathname_util_gpu, NULL);
+
+ if(c->pathname_util_gpu){
+ c->st_util_gpu = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_utilization", c->id.marketing_name, de->d_name)
+ , NULL
+ , "utilization"
+ , AMDGPU_CHART_TYPE ".gpu_utilization"
+ , "GPU utilization"
+ , "percentage"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_util_gpu->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_util_gpu = rrddim_add(c->st_util_gpu, "utilization", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+ add_do_rrd_x(c, do_rrd_util_gpu);
+ }
+
+ set_prop_pathname("device/mem_busy_percent", c->pathname_util_mem, NULL);
+
+ if(c->pathname_util_mem){
+ c->st_util_mem = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_utilization", c->id.marketing_name, de->d_name)
+ , NULL
+ , "utilization"
+ , AMDGPU_CHART_TYPE ".gpu_mem_utilization"
+ , "GPU memory utilization"
+ , "percentage"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_util_mem->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_util_mem = rrddim_add(c->st_util_mem, "utilization", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+ add_do_rrd_x(c, do_rrd_util_mem);
+ }
+
+
+ /* Initialize GPU and VRAM clock frequency metrics */
+
+ set_prop_pathname("device/pp_dpm_sclk", c->pathname_clk_gpu, &c->ff_clk_gpu);
+
+ if(c->pathname_clk_gpu){
+ c->st_clk_gpu = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_clk_frequency", c->id.marketing_name, de->d_name)
+ , NULL
+ , "frequency"
+ , AMDGPU_CHART_TYPE ".gpu_clk_frequency"
+ , "GPU clock frequency"
+ , "MHz"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_clk_gpu->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_clk_gpu = rrddim_add(c->st_clk_gpu, "frequency", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+ add_do_rrd_x(c, do_rrd_clk_gpu);
+
+ }
+
+ set_prop_pathname("device/pp_dpm_mclk", c->pathname_clk_mem, &c->ff_clk_mem);
+
+ if(c->pathname_clk_mem){
+ c->st_clk_mem = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_clk_frequency", c->id.marketing_name, de->d_name)
+ , NULL
+ , "frequency"
+ , AMDGPU_CHART_TYPE ".gpu_mem_clk_frequency"
+ , "GPU memory clock frequency"
+ , "MHz"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_clk_mem->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_clk_mem = rrddim_add(c->st_clk_mem, "frequency", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+ add_do_rrd_x(c, do_rrd_clk_mem);
+ }
+
+
+ /* Initialize GPU memory usage metrics */
+
+ set_prop_pathname("device/mem_info_vram_used", c->pathname_mem_used_vram, NULL);
+ set_prop_pathname("device/mem_info_vram_total", c->pathname_mem_total_vram, NULL);
+ if(c->pathname_mem_total_vram) c->total_vram = tmp_val;
+
+ if(c->pathname_mem_used_vram && c->pathname_mem_total_vram){
+ c->st_mem_usage_perc_vram = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_vram_usage_perc", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_vram_usage_perc"
+ , "VRAM memory usage percentage"
+ , "percentage"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_mem_usage_perc_vram->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_used_perc_vram = rrddim_add(c->st_mem_usage_perc_vram, "usage", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+
+
+ c->st_mem_usage_vram = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_vram_usage", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_vram_usage"
+ , "VRAM memory usage"
+ , "bytes"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rrdlabels_add(c->st_mem_usage_vram->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_free_vram = rrddim_add(c->st_mem_usage_vram, "free", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ c->rd_mem_used_vram = rrddim_add(c->st_mem_usage_vram, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+
+ add_do_rrd_x(c, do_rrd_vram);
+ }
+
+ set_prop_pathname("device/mem_info_vis_vram_used", c->pathname_mem_used_vis_vram, NULL);
+ set_prop_pathname("device/mem_info_vis_vram_total", c->pathname_mem_total_vis_vram, NULL);
+ if(c->pathname_mem_total_vis_vram) c->total_vis_vram = tmp_val;
+
+ if(c->pathname_mem_used_vis_vram && c->pathname_mem_total_vis_vram){
+ c->st_mem_usage_perc_vis_vram = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_vis_vram_usage_perc", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_vis_vram_usage_perc"
+ , "visible VRAM memory usage percentage"
+ , "percentage"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_mem_usage_perc_vis_vram->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_used_perc_vis_vram = rrddim_add(c->st_mem_usage_perc_vis_vram, "usage", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+
+
+ c->st_mem_usage_vis_vram = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_vis_vram_usage", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_vis_vram_usage"
+ , "visible VRAM memory usage"
+ , "bytes"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rrdlabels_add(c->st_mem_usage_vis_vram->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_free_vis_vram = rrddim_add(c->st_mem_usage_vis_vram, "free", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ c->rd_mem_used_vis_vram = rrddim_add(c->st_mem_usage_vis_vram, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+
+ add_do_rrd_x(c, do_rrd_vis_vram);
+ }
+
+ set_prop_pathname("device/mem_info_gtt_used", c->pathname_mem_used_gtt, NULL);
+ set_prop_pathname("device/mem_info_gtt_total", c->pathname_mem_total_gtt, NULL);
+ if(c->pathname_mem_total_gtt) c->total_gtt = tmp_val;
+
+ if(c->pathname_mem_used_gtt && c->pathname_mem_total_gtt){
+ c->st_mem_usage_perc_gtt = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_gtt_usage_perc", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_gtt_usage_perc"
+ , "GTT memory usage percentage"
+ , "percentage"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(c->st_mem_usage_perc_gtt->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_used_perc_gtt = rrddim_add(c->st_mem_usage_perc_gtt, "usage", NULL, 1, 100, RRD_ALGORITHM_ABSOLUTE);
+
+ c->st_mem_usage_gtt = rrdset_create_localhost(
+ AMDGPU_CHART_TYPE
+ , set_id("gpu_mem_gtt_usage", c->id.marketing_name, de->d_name)
+ , NULL
+ , "memory_usage"
+ , AMDGPU_CHART_TYPE ".gpu_mem_gtt_usage"
+ , "GTT memory usage"
+ , "bytes"
+ , PLUGIN_PROC_NAME
+ , PLUGIN_PROC_MODULE_DRM_NAME
+ , chart_prio++
+ , update_every
+ , RRDSET_TYPE_STACKED
+ );
+
+ rrdlabels_add(c->st_mem_usage_gtt->rrdlabels, "product_name", c->id.marketing_name, RRDLABEL_SRC_AUTO);
+
+ c->rd_mem_free_gtt = rrddim_add(c->st_mem_usage_gtt, "free", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ c->rd_mem_used_gtt = rrddim_add(c->st_mem_usage_gtt, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+
+
+ add_do_rrd_x(c, do_rrd_gtt);
+ }
+
+ c->next = card_root;
+ card_root = c;
+ }
+ }
+ }
+
+
+ struct card *card_cur = card_root,
+ *card_next;
+ while(card_cur){
+
+ struct do_rrd_x *do_rrd_x_cur = card_cur->do_rrd_x_root,
+ *do_rrd_x_next;
+ while(do_rrd_x_cur){
+ if(unlikely(do_rrd_x_cur->func(card_cur))) {
+ do_rrd_x_next = do_rrd_x_cur->next;
+ rm_do_rrd_x(card_cur, do_rrd_x_cur);
+ do_rrd_x_cur = do_rrd_x_next;
+ }
+ else do_rrd_x_cur = do_rrd_x_cur->next;
+ }
+
+ if(unlikely(!card_cur->do_rrd_x_root)){
+ card_next = card_cur->next;
+ card_free(card_cur);
+ card_cur = card_next;
+ }
+ else card_cur = card_cur->next;
+ }
+
+ return card_root ? 0 : 1;
+}
diff --git a/collectors/proc.plugin/sys_devices_pci_aer.c b/collectors/proc.plugin/sys_devices_pci_aer.c
new file mode 100644
index 000000000..134426238
--- /dev/null
+++ b/collectors/proc.plugin/sys_devices_pci_aer.c
@@ -0,0 +1,335 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "plugin_proc.h"
+
+static char *pci_aer_dirname = NULL;
+
+typedef enum __attribute__((packed)) {
+ AER_DEV_NONFATAL = (1 << 0),
+ AER_DEV_CORRECTABLE = (1 << 1),
+ AER_DEV_FATAL = (1 << 2),
+ AER_ROOTPORT_TOTAL_ERR_COR = (1 << 3),
+ AER_ROOTPORT_TOTAL_ERR_FATAL = (1 << 4),
+} AER_TYPE;
+
+struct aer_value {
+ kernel_uint_t count;
+ RRDDIM *rd;
+};
+
+struct aer_entry {
+ bool updated;
+
+ STRING *name;
+ AER_TYPE type;
+
+ procfile *ff;
+ DICTIONARY *values;
+
+ RRDSET *st;
+};
+
+DICTIONARY *aer_root = NULL;
+
+static bool aer_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data __maybe_unused) {
+ struct aer_value *v = old_value;
+ struct aer_value *nv = new_value;
+
+ v->count = nv->count;
+
+ return false;
+}
+
+static void aer_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
+ struct aer_entry *a = value;
+ a->values = dictionary_create(DICT_OPTION_SINGLE_THREADED|DICT_OPTION_DONT_OVERWRITE_VALUE);
+ dictionary_register_conflict_callback(a->values, aer_value_conflict_callback, NULL);
+}
+
+static void add_pci_aer(const char *base_dir, const char *d_name, AER_TYPE type) {
+ char buffer[FILENAME_MAX + 1];
+ snprintfz(buffer, FILENAME_MAX, "%s/%s", base_dir, d_name);
+ struct aer_entry *a = dictionary_set(aer_root, buffer, NULL, sizeof(struct aer_entry));
+
+ if(!a->name)
+ a->name = string_strdupz(d_name);
+
+ a->type = type;
+}
+
+static bool recursively_find_pci_aer(AER_TYPE types, const char *base_dir, const char *d_name, int depth) {
+ if(depth > 100)
+ return false;
+
+ char buffer[FILENAME_MAX + 1];
+ snprintfz(buffer, FILENAME_MAX, "%s/%s", base_dir, d_name);
+ DIR *dir = opendir(buffer);
+ if(unlikely(!dir)) {
+ collector_error("Cannot read PCI_AER directory '%s'", buffer);
+ return true;
+ }
+
+ struct dirent *de = NULL;
+ while((de = readdir(dir))) {
+ if(de->d_type == DT_DIR) {
+ if(de->d_name[0] == '.')
+ continue;
+
+ recursively_find_pci_aer(types, buffer, de->d_name, depth + 1);
+ }
+ else if(de->d_type == DT_REG) {
+ if((types & AER_DEV_NONFATAL) && strcmp(de->d_name, "aer_dev_nonfatal") == 0) {
+ add_pci_aer(buffer, de->d_name, AER_DEV_NONFATAL);
+ }
+ else if((types & AER_DEV_CORRECTABLE) && strcmp(de->d_name, "aer_dev_correctable") == 0) {
+ add_pci_aer(buffer, de->d_name, AER_DEV_CORRECTABLE);
+ }
+ else if((types & AER_DEV_FATAL) && strcmp(de->d_name, "aer_dev_fatal") == 0) {
+ add_pci_aer(buffer, de->d_name, AER_DEV_FATAL);
+ }
+ else if((types & AER_ROOTPORT_TOTAL_ERR_COR) && strcmp(de->d_name, "aer_rootport_total_err_cor") == 0) {
+ add_pci_aer(buffer, de->d_name, AER_ROOTPORT_TOTAL_ERR_COR);
+ }
+ else if((types & AER_ROOTPORT_TOTAL_ERR_FATAL) && strcmp(de->d_name, "aer_rootport_total_err_fatal") == 0) {
+ add_pci_aer(buffer, de->d_name, AER_ROOTPORT_TOTAL_ERR_FATAL);
+ }
+ }
+ }
+ closedir(dir);
+ return true;
+}
+
+static void find_all_pci_aer(AER_TYPE types) {
+ char name[FILENAME_MAX + 1];
+ snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices");
+ pci_aer_dirname = config_get("plugin:proc:/sys/devices/pci/aer", "directory to monitor", name);
+
+ DIR *dir = opendir(pci_aer_dirname);
+ if(unlikely(!dir)) {
+ collector_error("Cannot read PCI_AER directory '%s'", pci_aer_dirname);
+ return;
+ }
+
+ struct dirent *de = NULL;
+ while((de = readdir(dir))) {
+ if(de->d_type == DT_DIR && de->d_name[0] == 'p' && de->d_name[1] == 'c' && de->d_name[2] == 'i' && isdigit(de->d_name[3]))
+ recursively_find_pci_aer(types, pci_aer_dirname, de->d_name, 1);
+ }
+ closedir(dir);
+}
+
+static void read_pci_aer_values(const char *filename, struct aer_entry *t) {
+ t->updated = false;
+
+ if(unlikely(!t->ff)) {
+ t->ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT);
+ if(unlikely(!t->ff))
+ return;
+ }
+
+ t->ff = procfile_readall(t->ff);
+ if(unlikely(!t->ff || procfile_lines(t->ff) < 1 || procfile_linewords(t->ff, 0) < 1))
+ return;
+
+ size_t lines = procfile_lines(t->ff);
+ for(size_t l = 0; l < lines ; l++) {
+ if(procfile_linewords(t->ff, l) != 2)
+ continue;
+
+ struct aer_value v = {
+ .count = str2ull(procfile_lineword(t->ff, l, 1), NULL)
+ };
+
+ char *key = procfile_lineword(t->ff, l, 0);
+ if(!key || !*key || (key[0] == 'T' && key[1] == 'O' && key[2] == 'T' && key[3] == 'A' && key[4] == 'L' && key[5] == '_'))
+ continue;
+
+ dictionary_set(t->values, key, &v, sizeof(v));
+ }
+
+ t->updated = true;
+}
+
+static void read_pci_aer_count(const char *filename, struct aer_entry *t) {
+ t->updated = false;
+
+ if(unlikely(!t->ff)) {
+ t->ff = procfile_open(filename, " \t", PROCFILE_FLAG_DEFAULT);
+ if(unlikely(!t->ff))
+ return;
+ }
+
+ t->ff = procfile_readall(t->ff);
+ if(unlikely(!t->ff || procfile_lines(t->ff) < 1 || procfile_linewords(t->ff, 0) < 1))
+ return;
+
+ struct aer_value v = {
+ .count = str2ull(procfile_lineword(t->ff, 0, 0), NULL)
+ };
+ dictionary_set(t->values, "count", &v, sizeof(v));
+ t->updated = true;
+}
+
+static void add_label_from_link(struct aer_entry *a, const char *path, const char *link) {
+ char name[FILENAME_MAX + 1];
+ strncpyz(name, path, FILENAME_MAX);
+ char *slash = strrchr(name, '/');
+ if(slash)
+ *slash = '\0';
+
+ char name2[FILENAME_MAX + 1];
+ snprintfz(name2, FILENAME_MAX, "%s/%s", name, link);
+
+ ssize_t len = readlink(name2, name, FILENAME_MAX);
+ if(len != -1) {
+ name[len] = '\0'; // Null-terminate the string
+ slash = strrchr(name, '/');
+ if(slash) slash++;
+ else slash = name;
+ rrdlabels_add(a->st->rrdlabels, link, slash, RRDLABEL_SRC_AUTO);
+ }
+}
+
+int do_proc_sys_devices_pci_aer(int update_every, usec_t dt __maybe_unused) {
+ if(unlikely(!aer_root)) {
+ int do_root_ports = CONFIG_BOOLEAN_AUTO;
+ int do_pci_slots = CONFIG_BOOLEAN_NO;
+
+ char buffer[100 + 1] = "";
+ rrdlabels_get_value_strcpyz(localhost->rrdlabels, buffer, 100, "_virtualization");
+ if(strcmp(buffer, "none") != 0) {
+ // no need to run on virtualized environments
+ do_root_ports = CONFIG_BOOLEAN_NO;
+ do_pci_slots = CONFIG_BOOLEAN_NO;
+ }
+
+ do_root_ports = config_get_boolean("plugin:proc:/sys/class/pci/aer", "enable root ports", do_root_ports);
+ do_pci_slots = config_get_boolean("plugin:proc:/sys/class/pci/aer", "enable pci slots", do_pci_slots);
+
+ if(!do_root_ports && !do_pci_slots)
+ return 1;
+
+ aer_root = dictionary_create(DICT_OPTION_SINGLE_THREADED | DICT_OPTION_DONT_OVERWRITE_VALUE);
+ dictionary_register_insert_callback(aer_root, aer_insert_callback, NULL);
+
+ AER_TYPE types = ((do_root_ports) ? (AER_ROOTPORT_TOTAL_ERR_COR|AER_ROOTPORT_TOTAL_ERR_FATAL) : 0) |
+ ((do_pci_slots) ? (AER_DEV_FATAL|AER_DEV_NONFATAL|AER_DEV_CORRECTABLE) : 0);
+
+ find_all_pci_aer(types);
+
+ if(!dictionary_entries(aer_root))
+ return 1;
+ }
+
+ struct aer_entry *a;
+ dfe_start_read(aer_root, a) {
+ switch(a->type) {
+ case AER_DEV_NONFATAL:
+ case AER_DEV_FATAL:
+ case AER_DEV_CORRECTABLE:
+ read_pci_aer_values(a_dfe.name, a);
+ break;
+
+ case AER_ROOTPORT_TOTAL_ERR_COR:
+ case AER_ROOTPORT_TOTAL_ERR_FATAL:
+ read_pci_aer_count(a_dfe.name, a);
+ break;
+ }
+
+ if(!a->updated)
+ continue;
+
+ if(!a->st) {
+ const char *title;
+ const char *context;
+
+ switch(a->type) {
+ case AER_DEV_NONFATAL:
+ title = "PCI Advanced Error Reporting (AER) Non-Fatal Errors";
+ context = "pci.aer_nonfatal";
+ break;
+
+ case AER_DEV_FATAL:
+ title = "PCI Advanced Error Reporting (AER) Fatal Errors";
+ context = "pci.aer_fatal";
+ break;
+
+ case AER_DEV_CORRECTABLE:
+ title = "PCI Advanced Error Reporting (AER) Correctable Errors";
+ context = "pci.aer_correctable";
+ break;
+
+ case AER_ROOTPORT_TOTAL_ERR_COR:
+ title = "PCI Root-Port Advanced Error Reporting (AER) Correctable Errors";
+ context = "pci.rootport_aer_correctable";
+ break;
+
+ case AER_ROOTPORT_TOTAL_ERR_FATAL:
+ title = "PCI Root-Port Advanced Error Reporting (AER) Fatal Errors";
+ context = "pci.rootport_aer_fatal";
+ break;
+ }
+
+ char id[RRD_ID_LENGTH_MAX + 1];
+ char nm[RRD_ID_LENGTH_MAX + 1];
+ size_t len = strlen(pci_aer_dirname);
+
+ const char *fname = a_dfe.name;
+ if(strncmp(a_dfe.name, pci_aer_dirname, len) == 0)
+ fname = &a_dfe.name[len];
+
+ if(*fname == '/')
+ fname++;
+
+ snprintfz(id, RRD_ID_LENGTH_MAX, "%s_%s", &context[4], fname);
+ char *slash = strrchr(id, '/');
+ if(slash)
+ *slash = '\0';
+
+ netdata_fix_chart_id(id);
+
+ snprintfz(nm, RRD_ID_LENGTH_MAX, "%s", fname);
+ slash = strrchr(nm, '/');
+ if(slash)
+ *slash = '\0';
+
+ a->st = rrdset_create_localhost(
+ "pci"
+ , id
+ , NULL
+ , "aer"
+ , context
+ , title
+ , "errors/s"
+ , PLUGIN_PROC_NAME
+ , "/sys/devices/pci/aer"
+ , NETDATA_CHART_PRIO_PCI_AER
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
+
+ rrdlabels_add(a->st->rrdlabels, "device", nm, RRDLABEL_SRC_AUTO);
+ add_label_from_link(a, a_dfe.name, "driver");
+
+ struct aer_value *v;
+ dfe_start_read(a->values, v) {
+ v->rd = rrddim_add(a->st, v_dfe.name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ }
+ dfe_done(v);
+ }
+
+ struct aer_value *v;
+ dfe_start_read(a->values, v) {
+ if(unlikely(!v->rd))
+ v->rd = rrddim_add(a->st, v_dfe.name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+
+ rrddim_set_by_pointer(a->st, v->rd, (collected_number)v->count);
+ }
+ dfe_done(v);
+
+ rrdset_done(a->st);
+ }
+ dfe_done(a);
+
+ return 0;
+}
diff --git a/collectors/proc.plugin/sys_devices_system_edac_mc.c b/collectors/proc.plugin/sys_devices_system_edac_mc.c
index fdb6b51e9..0947f61f0 100644
--- a/collectors/proc.plugin/sys_devices_system_edac_mc.c
+++ b/collectors/proc.plugin/sys_devices_system_edac_mc.c
@@ -2,35 +2,51 @@
#include "plugin_proc.h"
+struct edac_count {
+ bool updated;
+ char *filename;
+ procfile *ff;
+ kernel_uint_t count;
+ RRDDIM *rd;
+};
+
+struct edac_dimm {
+ char *name;
+
+ struct edac_count ce;
+ struct edac_count ue;
+
+ RRDSET *st;
+
+ struct edac_dimm *prev, *next;
+};
+
struct mc {
char *name;
- char ce_updated;
- char ue_updated;
- char *ce_count_filename;
- char *ue_count_filename;
+ struct edac_count ce;
+ struct edac_count ue;
+ struct edac_count ce_noinfo;
+ struct edac_count ue_noinfo;
- procfile *ce_ff;
- procfile *ue_ff;
+ RRDSET *st;
- collected_number ce_count;
- collected_number ue_count;
+ struct edac_dimm *dimms;
- RRDDIM *ce_rd;
- RRDDIM *ue_rd;
-
- struct mc *next;
+ struct mc *prev, *next;
};
+
static struct mc *mc_root = NULL;
+static char *mc_dirname = NULL;
static void find_all_mc() {
char name[FILENAME_MAX + 1];
snprintfz(name, FILENAME_MAX, "%s%s", netdata_configured_host_prefix, "/sys/devices/system/edac/mc");
- char *dirname = config_get("plugin:proc:/sys/devices/system/edac/mc", "directory to monitor", name);
+ mc_dirname = config_get("plugin:proc:/sys/devices/system/edac/mc", "directory to monitor", name);
- DIR *dir = opendir(dirname);
+ DIR *dir = opendir(mc_dirname);
if(unlikely(!dir)) {
- collector_error("Cannot read ECC memory errors directory '%s'", dirname);
+ collector_error("Cannot read EDAC memory errors directory '%s'", mc_dirname);
return;
}
@@ -42,162 +58,240 @@ static void find_all_mc() {
struct stat st;
- snprintfz(name, FILENAME_MAX, "%s/%s/ce_count", dirname, de->d_name);
+ snprintfz(name, FILENAME_MAX, "%s/%s/ce_count", mc_dirname, de->d_name);
if(stat(name, &st) != -1)
- m->ce_count_filename = strdupz(name);
+ m->ce.filename = strdupz(name);
- snprintfz(name, FILENAME_MAX, "%s/%s/ue_count", dirname, de->d_name);
+ snprintfz(name, FILENAME_MAX, "%s/%s/ue_count", mc_dirname, de->d_name);
if(stat(name, &st) != -1)
- m->ue_count_filename = strdupz(name);
+ m->ue.filename = strdupz(name);
- if(!m->ce_count_filename && !m->ue_count_filename) {
+ snprintfz(name, FILENAME_MAX, "%s/%s/ce_noinfo_count", mc_dirname, de->d_name);
+ if(stat(name, &st) != -1)
+ m->ce_noinfo.filename = strdupz(name);
+
+ snprintfz(name, FILENAME_MAX, "%s/%s/ue_noinfo_count", mc_dirname, de->d_name);
+ if(stat(name, &st) != -1)
+ m->ue_noinfo.filename = strdupz(name);
+
+ if(!m->ce.filename && !m->ue.filename && !m->ce_noinfo.filename && !m->ue_noinfo.filename) {
freez(m->name);
freez(m);
}
- else {
- m->next = mc_root;
- mc_root = m;
- }
+ else
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(mc_root, m, prev, next);
}
}
-
closedir(dir);
-}
-int do_proc_sys_devices_system_edac_mc(int update_every, usec_t dt) {
- (void)dt;
+ for(struct mc *m = mc_root; m ;m = m->next) {
+ snprintfz(name, FILENAME_MAX, "%s/%s", mc_dirname, m->name);
+ dir = opendir(name);
+ if(!dir) {
+ collector_error("Cannot read EDAC memory errors directory '%s'", name);
+ continue;
+ }
- if(unlikely(mc_root == NULL)) {
- find_all_mc();
- if(unlikely(mc_root == NULL))
- return 1;
- }
+ while((de = readdir(dir))) {
+ // it can be dimmX or rankX directory
+ // https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#f5
- static int do_ce = -1, do_ue = -1;
- NETDATA_DOUBLE ce_sum = 0, ue_sum = 0;
- struct mc *m;
+ if (de->d_type == DT_DIR &&
+ ((strncmp(de->d_name, "rank", 4) == 0 || strncmp(de->d_name, "dimm", 4) == 0)) &&
+ isdigit(de->d_name[4])) {
- if(unlikely(do_ce == -1)) {
- do_ce = config_get_boolean_ondemand("plugin:proc:/sys/devices/system/edac/mc", "enable ECC memory correctable errors", CONFIG_BOOLEAN_YES);
- do_ue = config_get_boolean_ondemand("plugin:proc:/sys/devices/system/edac/mc", "enable ECC memory uncorrectable errors", CONFIG_BOOLEAN_YES);
- }
+ struct edac_dimm *d = callocz(1, sizeof(struct edac_dimm));
+ d->name = strdupz(de->d_name);
- if(do_ce != CONFIG_BOOLEAN_NO) {
- for(m = mc_root; m; m = m->next) {
- if(m->ce_count_filename) {
- m->ce_updated = 0;
+ struct stat st;
- if(unlikely(!m->ce_ff)) {
- m->ce_ff = procfile_open(m->ce_count_filename, " \t", PROCFILE_FLAG_DEFAULT);
- if(unlikely(!m->ce_ff))
- continue;
- }
+ snprintfz(name, FILENAME_MAX, "%s/%s/%s/dimm_ce_count", mc_dirname, m->name, de->d_name);
+ if(stat(name, &st) != -1)
+ d->ce.filename = strdupz(name);
- m->ce_ff = procfile_readall(m->ce_ff);
- if(unlikely(!m->ce_ff || procfile_lines(m->ce_ff) < 1 || procfile_linewords(m->ce_ff, 0) < 1))
- continue;
+ snprintfz(name, FILENAME_MAX, "%s/%s/%s/dimm_ue_count", mc_dirname, m->name, de->d_name);
+ if(stat(name, &st) != -1)
+ d->ue.filename = strdupz(name);
- m->ce_count = str2ull(procfile_lineword(m->ce_ff, 0, 0), NULL);
- ce_sum += m->ce_count;
- m->ce_updated = 1;
+ if(!d->ce.filename && !d->ue.filename) {
+ freez(d->name);
+ freez(d);
+ }
+ else
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(m->dimms, d, prev, next);
}
}
+ closedir(dir);
}
+}
- if(do_ue != CONFIG_BOOLEAN_NO) {
- for(m = mc_root; m; m = m->next) {
- if(m->ue_count_filename) {
- m->ue_updated = 0;
+static kernel_uint_t read_edac_count(struct edac_count *t) {
+ t->updated = false;
+ t->count = 0;
- if(unlikely(!m->ue_ff)) {
- m->ue_ff = procfile_open(m->ue_count_filename, " \t", PROCFILE_FLAG_DEFAULT);
- if(unlikely(!m->ue_ff))
- continue;
- }
+ if(t->filename) {
+ if(unlikely(!t->ff)) {
+ t->ff = procfile_open(t->filename, " \t", PROCFILE_FLAG_DEFAULT);
+ if(unlikely(!t->ff))
+ return 0;
+ }
- m->ue_ff = procfile_readall(m->ue_ff);
- if(unlikely(!m->ue_ff || procfile_lines(m->ue_ff) < 1 || procfile_linewords(m->ue_ff, 0) < 1))
- continue;
+ t->ff = procfile_readall(t->ff);
+ if(unlikely(!t->ff || procfile_lines(t->ff) < 1 || procfile_linewords(t->ff, 0) < 1))
+ return 0;
- m->ue_count = str2ull(procfile_lineword(m->ue_ff, 0, 0), NULL);
- ue_sum += m->ue_count;
- m->ue_updated = 1;
- }
+ t->count = str2ull(procfile_lineword(t->ff, 0, 0), NULL);
+ t->updated = true;
+ }
+
+ return t->count;
+}
+
+static bool read_edac_mc_file(const char *mc, const char *filename, char *out, size_t out_size) {
+ char f[FILENAME_MAX + 1];
+ snprintfz(f, FILENAME_MAX, "%s/%s/%s", mc_dirname, mc, filename);
+ if(read_file(f, out, out_size) != 0) {
+ collector_error("EDAC: cannot read file '%s'", f);
+ return false;
+ }
+ return true;
+}
+
+static bool read_edac_mc_rank_file(const char *mc, const char *rank, const char *filename, char *out, size_t out_size) {
+ char f[FILENAME_MAX + 1];
+ snprintfz(f, FILENAME_MAX, "%s/%s/%s/%s", mc_dirname, mc, rank, filename);
+ if(read_file(f, out, out_size) != 0) {
+ collector_error("EDAC: cannot read file '%s'", f);
+ return false;
+ }
+ return true;
+}
+
+int do_proc_sys_devices_system_edac_mc(int update_every, usec_t dt __maybe_unused) {
+ if(unlikely(!mc_root)) {
+ find_all_mc();
+
+ if(!mc_root)
+ // don't call this again
+ return 1;
+ }
+
+ for(struct mc *m = mc_root; m; m = m->next) {
+ read_edac_count(&m->ce);
+ read_edac_count(&m->ce_noinfo);
+ read_edac_count(&m->ue);
+ read_edac_count(&m->ue_noinfo);
+
+ for(struct edac_dimm *d = m->dimms; d ;d = d->next) {
+ read_edac_count(&d->ce);
+ read_edac_count(&d->ue);
}
}
// --------------------------------------------------------------------
- if(do_ce == CONFIG_BOOLEAN_YES || (do_ce == CONFIG_BOOLEAN_AUTO &&
- (ce_sum > 0 || netdata_zero_metrics_enabled == CONFIG_BOOLEAN_YES))) {
- do_ce = CONFIG_BOOLEAN_YES;
+ for(struct mc *m = mc_root; m ; m = m->next) {
+ if(unlikely(!m->ce.updated && !m->ue.updated && !m->ce_noinfo.updated && !m->ue_noinfo.updated))
+ continue;
- static RRDSET *ce_st = NULL;
-
- if(unlikely(!ce_st)) {
- ce_st = rrdset_create_localhost(
+ if(unlikely(!m->st)) {
+ char id[RRD_ID_LENGTH_MAX + 1];
+ snprintfz(id, RRD_ID_LENGTH_MAX, "edac_%s", m->name);
+ m->st = rrdset_create_localhost(
"mem"
- , "ecc_ce"
- , NULL
- , "ecc"
+ , id
, NULL
- , "ECC Memory Correctable Errors"
- , "errors"
+ , "edac"
+ , "mem.edac_mc"
+ , "Memory Controller (MC) Error Detection And Correction (EDAC) Errors"
+ , "errors/s"
, PLUGIN_PROC_NAME
, "/sys/devices/system/edac/mc"
, NETDATA_CHART_PRIO_MEM_HW_ECC_CE
, update_every
, RRDSET_TYPE_LINE
);
- }
- for(m = mc_root; m; m = m->next) {
- if (m->ce_count_filename && m->ce_updated) {
- if(unlikely(!m->ce_rd))
- m->ce_rd = rrddim_add(ce_st, m->name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ rrdlabels_add(m->st->rrdlabels, "controller", m->name, RRDLABEL_SRC_AUTO);
- rrddim_set_by_pointer(ce_st, m->ce_rd, m->ce_count);
- }
+ char buffer[1024 + 1];
+
+ if(read_edac_mc_file(m->name, "mc_name", buffer, 1024))
+ rrdlabels_add(m->st->rrdlabels, "mc_name", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_file(m->name, "size_mb", buffer, 1024))
+ rrdlabels_add(m->st->rrdlabels, "size_mb", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_file(m->name, "max_location", buffer, 1024))
+ rrdlabels_add(m->st->rrdlabels, "max_location", buffer, RRDLABEL_SRC_AUTO);
+
+ m->ce.rd = rrddim_add(m->st, "correctable", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ m->ue.rd = rrddim_add(m->st, "uncorrectable", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ m->ce_noinfo.rd = rrddim_add(m->st, "correctable_noinfo", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ m->ue_noinfo.rd = rrddim_add(m->st, "uncorrectable_noinfo", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
}
- rrdset_done(ce_st);
- }
+ rrddim_set_by_pointer(m->st, m->ce.rd, (collected_number)m->ce.count);
+ rrddim_set_by_pointer(m->st, m->ue.rd, (collected_number)m->ue.count);
+ rrddim_set_by_pointer(m->st, m->ce_noinfo.rd, (collected_number)m->ce_noinfo.count);
+ rrddim_set_by_pointer(m->st, m->ue_noinfo.rd, (collected_number)m->ue_noinfo.count);
- // --------------------------------------------------------------------
+ rrdset_done(m->st);
- if(do_ue == CONFIG_BOOLEAN_YES || (do_ue == CONFIG_BOOLEAN_AUTO &&
- (ue_sum > 0 || netdata_zero_metrics_enabled == CONFIG_BOOLEAN_YES))) {
- do_ue = CONFIG_BOOLEAN_YES;
+ for(struct edac_dimm *d = m->dimms; d ;d = d->next) {
+ if(unlikely(!d->ce.updated && !d->ue.updated))
+ continue;
- static RRDSET *ue_st = NULL;
+ if(unlikely(!d->st)) {
+ char id[RRD_ID_LENGTH_MAX + 1];
+ snprintfz(id, RRD_ID_LENGTH_MAX, "edac_%s_%s", m->name, d->name);
+ d->st = rrdset_create_localhost(
+ "mem"
+ , id
+ , NULL
+ , "edac"
+ , "mem.edac_mc_dimm"
+ , "DIMM Error Detection And Correction (EDAC) Errors"
+ , "errors/s"
+ , PLUGIN_PROC_NAME
+ , "/sys/devices/system/edac/mc"
+ , NETDATA_CHART_PRIO_MEM_HW_ECC_CE + 1
+ , update_every
+ , RRDSET_TYPE_LINE
+ );
- if(unlikely(!ue_st)) {
- ue_st = rrdset_create_localhost(
- "mem"
- , "ecc_ue"
- , NULL
- , "ecc"
- , NULL
- , "ECC Memory Uncorrectable Errors"
- , "errors"
- , PLUGIN_PROC_NAME
- , "/sys/devices/system/edac/mc"
- , NETDATA_CHART_PRIO_MEM_HW_ECC_UE
- , update_every
- , RRDSET_TYPE_LINE
- );
- }
+ rrdlabels_add(d->st->rrdlabels, "controller", m->name, RRDLABEL_SRC_AUTO);
+ rrdlabels_add(d->st->rrdlabels, "dimm", d->name, RRDLABEL_SRC_AUTO);
+
+ char buffer[1024 + 1];
- for(m = mc_root; m; m = m->next) {
- if (m->ue_count_filename && m->ue_updated) {
- if(unlikely(!m->ue_rd))
- m->ue_rd = rrddim_add(ue_st, m->name, NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ if(read_edac_mc_rank_file(m->name, d->name, "dimm_dev_type", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "dimm_dev_type", buffer, RRDLABEL_SRC_AUTO);
- rrddim_set_by_pointer(ue_st, m->ue_rd, m->ue_count);
+ if(read_edac_mc_rank_file(m->name, d->name, "dimm_edac_mode", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "dimm_edac_mode", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_rank_file(m->name, d->name, "dimm_label", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "dimm_label", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_rank_file(m->name, d->name, "dimm_location", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "dimm_location", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_rank_file(m->name, d->name, "dimm_mem_type", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "dimm_mem_type", buffer, RRDLABEL_SRC_AUTO);
+
+ if(read_edac_mc_rank_file(m->name, d->name, "size", buffer, 1024))
+ rrdlabels_add(d->st->rrdlabels, "size", buffer, RRDLABEL_SRC_AUTO);
+
+ d->ce.rd = rrddim_add(d->st, "correctable", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
+ d->ue.rd = rrddim_add(d->st, "uncorrectable", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
}
- }
- rrdset_done(ue_st);
+ rrddim_set_by_pointer(d->st, d->ce.rd, (collected_number)d->ce.count);
+ rrddim_set_by_pointer(d->st, d->ue.rd, (collected_number)d->ue.count);
+
+ rrdset_done(d->st);
+ }
}
return 0;
diff --git a/collectors/python.d.plugin/adaptec_raid/metadata.yaml b/collectors/python.d.plugin/adaptec_raid/metadata.yaml
index 5986aed60..7ee4ce7c2 100644
--- a/collectors/python.d.plugin/adaptec_raid/metadata.yaml
+++ b/collectors/python.d.plugin/adaptec_raid/metadata.yaml
@@ -1,98 +1,167 @@
-meta:
- plugin_name: python.d.plugin
- module_name: adaptec_raid
- monitored_instance:
- name: AdaptecRAID
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'adaptec.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Assess Adaptec RAID hardware storage controllers with Netdata for RAID controller performance and operational metrics. Improve your RAID controller performance with comprehensive dashboards and anomaly detection.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: adaptec_raid_ld_status
- link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf
- metric: adaptec_raid.ld_status
- info: logical device status is failed or degraded
-- name: adaptec_raid_pd_state
- link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf
- metric: adaptec_raid.pd_state
- info: physical device state is not online
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: adaptec_raid
+ monitored_instance:
+ name: AdaptecRAID
+ link: "https://www.microchip.com/en-us/products/storage"
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: "adaptec.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - storage
+ - raid-controller
+ - manage-disks
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors Adaptec RAID hardware storage controller metrics about both physical and logical drives.
+ method_description: |
+ It uses the arcconf command line utility (from adaptec) to monitor your raid controller.
+
+ Executed commands:
+ - sudo -n arcconf GETCONFIG 1 LD
+ - sudo -n arcconf GETCONFIG 1 PD
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: "The module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password."
+ default_behavior:
+ auto_detection:
+ description: "After all the permissions are satisfied, netdata should be to execute commands via the arcconf command line utility"
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Grant permissions for netdata, to run arcconf as sudoer
+ description: |
+ The module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password.
+
+ Add to your /etc/sudoers file:
+ which arcconf shows the full path to the binary.
+
+ ```bash
+ netdata ALL=(root) NOPASSWD: /path/to/arcconf
+ ```
+ - title: Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)
+ description: |
+ The default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.
+
+ As root user, do the following:
+
+ ```bash
+ mkdir /etc/systemd/system/netdata.service.d
+ echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf
+ systemctl daemon-reload
+ systemctl restart netdata.service
+ ```
+ configuration:
+ file:
+ name: "python.d/adaptec_raid.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration per job
+ config: |
+ job_name:
+ name: my_job_name
+ update_every: 1 # the JOB's data collection frequency
+ priority: 60000 # the JOB's order on the dashboard
+ penalty: yes # the JOB's penalty
+ autodetection_retry: 0 # the JOB's re-check interval in seconds
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: adaptec_raid_ld_status
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf
+ metric: adaptec_raid.ld_status
+ info: logical device status is failed or degraded
+ - name: adaptec_raid_pd_state
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf
+ metric: adaptec_raid.pd_state
+ info: physical device state is not online
metrics:
- - name: adaptec_raid.ld_status
- description: 'Status of logical devices (1: Failed or Degraded)'
- unit: "bool"
- chart_type: line
- dimensions:
- - name: a dimension per logical device
- - name: adaptec_raid.pd_state
- description: 'State of physical devices (1: not Online)'
- unit: "bool"
- chart_type: line
- dimensions:
- - name: a dimension per physical device
- - name: adaptec_raid.smart_warnings
- description: S.M.A.R.T warnings
- unit: "count"
- chart_type: line
- dimensions:
- - name: a dimension per physical device
- - name: adaptec_raid.temperature
- description: Temperature
- unit: "celsius"
- chart_type: line
- dimensions:
- - name: a dimension per physical device
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: adaptec_raid.ld_status
+ description: "Status of logical devices (1: Failed or Degraded)"
+ unit: "bool"
+ chart_type: line
+ dimensions:
+ - name: a dimension per logical device
+ - name: adaptec_raid.pd_state
+ description: "State of physical devices (1: not Online)"
+ unit: "bool"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical device
+ - name: adaptec_raid.smart_warnings
+ description: S.M.A.R.T warnings
+ unit: "count"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical device
+ - name: adaptec_raid.temperature
+ description: Temperature
+ unit: "celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical device
diff --git a/collectors/python.d.plugin/adaptec_raid/metrics.csv b/collectors/python.d.plugin/adaptec_raid/metrics.csv
deleted file mode 100644
index 1462940cd..000000000
--- a/collectors/python.d.plugin/adaptec_raid/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-adaptec_raid.ld_status,,a dimension per logical device,bool,Status of logical devices (1: Failed or Degraded),line,,python.d.plugin,adaptec_raid
-adaptec_raid.pd_state,,a dimension per physical device,bool,State of physical devices (1: not Online),line,,python.d.plugin,adaptec_raid
-adaptec_raid.smart_warnings,,a dimension per physical device,count,S.M.A.R.T warnings,line,,python.d.plugin,adaptec_raid
-adaptec_raid.temperature,,a dimension per physical device,celsius,Temperature,line,,python.d.plugin,adaptec_raid
diff --git a/collectors/python.d.plugin/alarms/metadata.yaml b/collectors/python.d.plugin/alarms/metadata.yaml
index 81afd5ccf..30a897787 100644
--- a/collectors/python.d.plugin/alarms/metadata.yaml
+++ b/collectors/python.d.plugin/alarms/metadata.yaml
@@ -1,77 +1,177 @@
-meta:
- plugin_name: python.d.plugin
- module_name: alarms
- monitored_instance:
- name: python.d alarms
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: alarms
+ monitored_instance:
+ name: Netdata Agent alarms
+ link: https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alarms/README.md
+ categories:
+ - data-collection.other
+ icon_filename: ""
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - alarms
+ - netdata
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector creates an 'Alarms' menu with one line plot of `alarms.status`.
+ method_description: |
+ Alarm status is read from the Netdata agent rest api [`/api/v1/alarms?all`](https://learn.netdata.cloud/api#/alerts/alerts1).
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: |
+ It discovers instances of Netdata running on localhost, and gathers metrics from `http://127.0.0.1:19999/api/v1/alarms?all`. `CLEAR` status is mapped to `0`, `WARNING` to `1` and `CRITICAL` to `2`. Also, by default all alarms produced will be monitored.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: python.d/alarms.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: url
+ description: Netdata agent alarms endpoint to collect from. Can be local or remote so long as reachable by agent.
+ default_value: http://127.0.0.1:19999/api/v1/alarms?all
+ required: true
+ - name: status_map
+ description: Mapping of alarm status to integer number that will be the metric value collected.
+ default_value: '{"CLEAR": 0, "WARNING": 1, "CRITICAL": 2}'
+ required: true
+ - name: collect_alarm_values
+ description: set to true to include a chart with calculated alarm values over time.
+ default_value: false
+ required: true
+ - name: alarm_status_chart_type
+ description: define the type of chart for plotting status over time e.g. 'line' or 'stacked'.
+ default_value: "line"
+ required: true
+ - name: alarm_contains_words
+ description: >
+ A "," separated list of words you want to filter alarm names for. For example 'cpu,load' would filter for only alarms with "cpu" or "load" in alarm name. Default includes all.
+ default_value: ""
+ required: true
+ - name: alarm_excludes_words
+ description: >
+ A "," separated list of words you want to exclude based on alarm name. For example 'cpu,load' would exclude all alarms with "cpu" or "load" in alarm name. Default excludes None.
+ default_value: ""
+ required: true
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 10
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: Config
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration.
+ config: |
+ jobs:
+ url: 'http://127.0.0.1:19999/api/v1/alarms?all'
+ - name: Advanced
+ folding:
+ enabled: true
+ description: |
+ An advanced example configuration with multiple jobs collecting different subsets of alarms for plotting on different charts.
+ "ML" job will collect status and values for all alarms with "ml_" in the name. Default job will collect status for all other alarms.
+ config: |
+ ML:
+ update_every: 5
+ url: 'http://127.0.0.1:19999/api/v1/alarms?all'
+ status_map:
+ CLEAR: 0
+ WARNING: 1
+ CRITICAL: 2
+ collect_alarm_values: true
+ alarm_status_chart_type: 'stacked'
+ alarm_contains_words: 'ml_'
+
+ Default:
+ update_every: 5
+ url: 'http://127.0.0.1:19999/api/v1/alarms?all'
+ status_map:
+ CLEAR: 0
+ WARNING: 1
+ CRITICAL: 2
+ collect_alarm_values: false
+ alarm_status_chart_type: 'stacked'
+ alarm_excludes_words: 'ml_'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: alarms.status
- description: Alarms ({status mapping})
- unit: "status"
- chart_type: line
- dimensions:
- - name: a dimension per alarm
- - name: alarms.status
- description: Alarm Values
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per alarm
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to the entire monitored application.
+ labels: []
+ metrics:
+ - name: alarms.status
+ description: Alarms ({status mapping})
+ unit: "status"
+ chart_type: line
+ dimensions:
+ - name: a dimension per alarm representing the latest status of the alarm.
+ - name: alarms.values
+ description: Alarm Values
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per alarm representing the latest collected value of the alarm.
diff --git a/collectors/python.d.plugin/alarms/metrics.csv b/collectors/python.d.plugin/alarms/metrics.csv
deleted file mode 100644
index 1c28a836c..000000000
--- a/collectors/python.d.plugin/alarms/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-alarms.status,,a dimension per alarm,status,Alarms ({status mapping}),line,,python.d.plugin,alarms
-alarms.status,,a dimension per alarm,value,Alarm Values,line,,python.d.plugin,alarms
diff --git a/collectors/python.d.plugin/am2320/metadata.yaml b/collectors/python.d.plugin/am2320/metadata.yaml
index 88e86fb23..c85cd5f22 100644
--- a/collectors/python.d.plugin/am2320/metadata.yaml
+++ b/collectors/python.d.plugin/am2320/metadata.yaml
@@ -1,78 +1,135 @@
-meta:
- plugin_name: python.d.plugin
- module_name: am2320
- monitored_instance:
- name: AM2320
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: 'microchip.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor AM2320 metrics with Netdata for optimal temperature and humidity sensor performance. Improve your sensor performance with comprehensive dashboards and anomaly detection.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: am2320
+ monitored_instance:
+ name: AM2320
+ link: 'https://learn.adafruit.com/adafruit-am2320-temperature-humidity-i2c-sensor/overview'
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: 'microchip.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - temperature
+ - am2320
+ - sensor
+ - humidity
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors AM2320 sensor metrics about temperature and humidity.'
+ method_description: 'It retrieves temperature and humidity values by contacting an AM2320 sensor over i2c.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'Assuming prerequisites are met, the collector will try to connect to the sensor via i2c'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Sensor connection to a Raspberry Pi'
+ description: |
+ Connect the am2320 to the Raspberry Pi I2C pins
+
+ Raspberry Pi 3B/4 Pins:
+
+ - Board 3.3V (pin 1) to sensor VIN (pin 1)
+ - Board SDA (pin 3) to sensor SDA (pin 2)
+ - Board GND (pin 6) to sensor GND (pin 3)
+ - Board SCL (pin 5) to sensor SCL (pin 4)
+
+ You may also need to add two I2C pullup resistors if your board does not already have them. The Raspberry Pi does have internal pullup resistors but it doesn't hurt to add them anyway. You can use 2.2K - 10K but we will just use 10K. The resistors go from VDD to SCL and SDA each.
+ - title: 'Software requirements'
+ description: |
+ Install the Adafruit Circuit Python AM2320 library:
+
+ `sudo pip3 install adafruit-circuitpython-am2320`
+ configuration:
+ file:
+ name: python.d/am2320.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Local sensor
+ description: A basic JOB configuration
+ config: |
+ local_sensor:
+ name: 'Local AM2320'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: am2320.temperature
- description: Temperature
- unit: "celsius"
- chart_type: line
- dimensions:
- - name: temperature
- - name: am2320.humidity
- description: Relative Humidity
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: humidity
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: am2320.temperature
+ description: Temperature
+ unit: "celsius"
+ chart_type: line
+ dimensions:
+ - name: temperature
+ - name: am2320.humidity
+ description: Relative Humidity
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: humidity
diff --git a/collectors/python.d.plugin/am2320/metrics.csv b/collectors/python.d.plugin/am2320/metrics.csv
deleted file mode 100644
index 0f3b79f2f..000000000
--- a/collectors/python.d.plugin/am2320/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-am2320.temperature,,temperature,celsius,Temperature,line,,python.d.plugin,am2320
-am2320.humidity,,humidity,percentage,Relative Humidity,line,,python.d.plugin,am2320
diff --git a/collectors/python.d.plugin/anomalies/metadata.yaml b/collectors/python.d.plugin/anomalies/metadata.yaml
index 7bcac6469..d138cf5dd 100644
--- a/collectors/python.d.plugin/anomalies/metadata.yaml
+++ b/collectors/python.d.plugin/anomalies/metadata.yaml
@@ -1,85 +1,87 @@
-meta:
- plugin_name: python.d.plugin
- module_name: anomalies
- monitored_instance:
- name: python.d anomalies
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: anomalies_anomaly_probabilities
- link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf
- metric: anomalies.probability
- info: average anomaly probability over the last 2 minutes
-- name: anomalies_anomaly_flags
- link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf
- metric: anomalies.anomaly
- info: number of anomalies in the last 2 minutes
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: anomalies.probability
- description: Anomaly Probability
- unit: "probability"
- chart_type: line
- dimensions:
- - name: a dimension per probability
- - name: anomalies.anomaly
- description: Anomaly
- unit: "count"
- chart_type: stacked
- dimensions:
- - name: a dimension per anomaly
+# NOTE: this file is commented out as users are reccomended to use the
+# native anomaly detection capabilities on the agent instead.
+# meta:
+# plugin_name: python.d.plugin
+# module_name: anomalies
+# monitored_instance:
+# name: python.d anomalies
+# link: ""
+# categories: []
+# icon_filename: ""
+# related_resources:
+# integrations:
+# list: []
+# info_provided_to_referring_integrations:
+# description: ""
+# keywords: []
+# most_popular: false
+# overview:
+# data_collection:
+# metrics_description: ""
+# method_description: ""
+# supported_platforms:
+# include: []
+# exclude: []
+# multi_instance: true
+# additional_permissions:
+# description: ""
+# default_behavior:
+# auto_detection:
+# description: ""
+# limits:
+# description: ""
+# performance_impact:
+# description: ""
+# setup:
+# prerequisites:
+# list: []
+# configuration:
+# file:
+# name: ""
+# description: ""
+# options:
+# description: ""
+# folding:
+# title: ""
+# enabled: true
+# list: []
+# examples:
+# folding:
+# enabled: true
+# title: ""
+# list: []
+# troubleshooting:
+# problems:
+# list: []
+# alerts:
+# - name: anomalies_anomaly_probabilities
+# link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf
+# metric: anomalies.probability
+# info: average anomaly probability over the last 2 minutes
+# - name: anomalies_anomaly_flags
+# link: https://github.com/netdata/netdata/blob/master/health/health.d/anomalies.conf
+# metric: anomalies.anomaly
+# info: number of anomalies in the last 2 minutes
+# metrics:
+# folding:
+# title: Metrics
+# enabled: false
+# description: ""
+# availability: []
+# scopes:
+# - name: global
+# description: ""
+# labels: []
+# metrics:
+# - name: anomalies.probability
+# description: Anomaly Probability
+# unit: "probability"
+# chart_type: line
+# dimensions:
+# - name: a dimension per probability
+# - name: anomalies.anomaly
+# description: Anomaly
+# unit: "count"
+# chart_type: stacked
+# dimensions:
+# - name: a dimension per anomaly
diff --git a/collectors/python.d.plugin/anomalies/metrics.csv b/collectors/python.d.plugin/anomalies/metrics.csv
deleted file mode 100644
index 847d9d1d9..000000000
--- a/collectors/python.d.plugin/anomalies/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-anomalies.probability,,a dimension per probability,probability,Anomaly Probability,line,,python.d.plugin,anomalies
-anomalies.anomaly,,a dimension per anomaly,count,Anomaly,stacked,,python.d.plugin,anomalies
diff --git a/collectors/python.d.plugin/beanstalk/metadata.yaml b/collectors/python.d.plugin/beanstalk/metadata.yaml
index d8730bb89..b6ff2f116 100644
--- a/collectors/python.d.plugin/beanstalk/metadata.yaml
+++ b/collectors/python.d.plugin/beanstalk/metadata.yaml
@@ -1,194 +1,263 @@
-meta:
- plugin_name: python.d.plugin
- module_name: beanstalk
- monitored_instance:
- name: Beanstalk
- link: ''
- categories:
- - data-collection.message-brokers
- icon_filename: 'beanstalk.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: beanstalk_server_buried_jobs
- link: https://github.com/netdata/netdata/blob/master/health/health.d/beanstalkd.conf
- metric: beanstalk.current_jobs
- info: number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs.
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: beanstalk
+ monitored_instance:
+ name: Beanstalk
+ link: "https://beanstalkd.github.io/"
+ categories:
+ - data-collection.message-brokers
+ - data-collection.task-queues
+ icon_filename: "beanstalk.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - beanstalk
+ - beanstalkd
+ - message
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management."
+ method_description: "The collector uses the `beanstalkc` python module to connect to a `beanstalkd` service and gather metrics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "If no configuration is given, module will attempt to connect to beanstalkd on 127.0.0.1:11300 address."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "beanstalkc python module"
+ description: The collector requires the `beanstalkc` python module to be installed.
+ configuration:
+ file:
+ name: python.d/beanstalk.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: host
+ description: IP or URL to a beanstalk service.
+ default_value: "127.0.0.1"
+ required: false
+ - name: port
+ description: Port to the IP or URL to a beanstalk service.
+ default_value: "11300"
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Remote beanstalk server
+ description: A basic remote beanstalk server
+ folding:
+ enabled: false
+ config: |
+ remote:
+ name: 'beanstalk'
+ host: '1.2.3.4'
+ port: 11300
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local_beanstalk'
+ host: '127.0.0.1'
+ port: 11300
+
+ remote_job:
+ name: 'remote_beanstalk'
+ host: '192.0.2.1'
+ port: 113000
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: beanstalk_server_buried_jobs
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/beanstalkd.conf
+ metric: beanstalk.current_jobs
+ info: number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs.
metrics:
- - name: beanstalk.cpu_usage
- description: Cpu Usage
- unit: "cpu time"
- chart_type: area
- dimensions:
- - name: user
- - name: system
- - name: beanstalk.jobs_rate
- description: Jobs Rate
- unit: "jobs/s"
- chart_type: line
- dimensions:
- - name: total
- - name: timeouts
- - name: beanstalk.connections_rate
- description: Connections Rate
- unit: "connections/s"
- chart_type: area
- dimensions:
- - name: connections
- - name: beanstalk.commands_rate
- description: Commands Rate
- unit: "commands/s"
- chart_type: stacked
- dimensions:
- - name: put
- - name: peek
- - name: peek-ready
- - name: peek-delayed
- - name: peek-buried
- - name: reserve
- - name: use
- - name: watch
- - name: ignore
- - name: delete
- - name: bury
- - name: kick
- - name: stats
- - name: stats-job
- - name: stats-tube
- - name: list-tubes
- - name: list-tube-used
- - name: list-tubes-watched
- - name: pause-tube
- - name: beanstalk.connections_rate
- description: Current Tubes
- unit: "tubes"
- chart_type: area
- dimensions:
- - name: tubes
- - name: beanstalk.current_jobs
- description: Current Jobs
- unit: "jobs"
- chart_type: stacked
- dimensions:
- - name: urgent
- - name: ready
- - name: reserved
- - name: delayed
- - name: buried
- - name: beanstalk.current_connections
- description: Current Connections
- unit: "connections"
- chart_type: line
- dimensions:
- - name: written
- - name: producers
- - name: workers
- - name: waiting
- - name: beanstalk.binlog
- description: Binlog
- unit: "records/s"
- chart_type: line
- dimensions:
- - name: written
- - name: migrated
- - name: beanstalk.uptime
- description: seconds
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
- - name: tube
- description: ""
- labels: []
- metrics:
- - name: beanstalk.jobs_rate
- description: Jobs Rate
- unit: "jobs/s"
- chart_type: area
- dimensions:
- - name: jobs
- - name: beanstalk.jobs
- description: Jobs
- unit: "jobs"
- chart_type: stacked
- dimensions:
- - name: urgent
- - name: ready
- - name: reserved
- - name: delayed
- - name: buried
- - name: beanstalk.connections
- description: Connections
- unit: "connections"
- chart_type: stacked
- dimensions:
- - name: using
- - name: waiting
- - name: watching
- - name: beanstalk.commands
- description: Commands
- unit: "commands/s"
- chart_type: stacked
- dimensions:
- - name: deletes
- - name: pauses
- - name: beanstalk.pause
- description: Pause
- unit: "seconds"
- chart_type: stacked
- dimensions:
- - name: since
- - name: left
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: beanstalk.cpu_usage
+ description: Cpu Usage
+ unit: "cpu time"
+ chart_type: area
+ dimensions:
+ - name: user
+ - name: system
+ - name: beanstalk.jobs_rate
+ description: Jobs Rate
+ unit: "jobs/s"
+ chart_type: line
+ dimensions:
+ - name: total
+ - name: timeouts
+ - name: beanstalk.connections_rate
+ description: Connections Rate
+ unit: "connections/s"
+ chart_type: area
+ dimensions:
+ - name: connections
+ - name: beanstalk.commands_rate
+ description: Commands Rate
+ unit: "commands/s"
+ chart_type: stacked
+ dimensions:
+ - name: put
+ - name: peek
+ - name: peek-ready
+ - name: peek-delayed
+ - name: peek-buried
+ - name: reserve
+ - name: use
+ - name: watch
+ - name: ignore
+ - name: delete
+ - name: bury
+ - name: kick
+ - name: stats
+ - name: stats-job
+ - name: stats-tube
+ - name: list-tubes
+ - name: list-tube-used
+ - name: list-tubes-watched
+ - name: pause-tube
+ - name: beanstalk.connections_rate
+ description: Current Tubes
+ unit: "tubes"
+ chart_type: area
+ dimensions:
+ - name: tubes
+ - name: beanstalk.current_jobs
+ description: Current Jobs
+ unit: "jobs"
+ chart_type: stacked
+ dimensions:
+ - name: urgent
+ - name: ready
+ - name: reserved
+ - name: delayed
+ - name: buried
+ - name: beanstalk.current_connections
+ description: Current Connections
+ unit: "connections"
+ chart_type: line
+ dimensions:
+ - name: written
+ - name: producers
+ - name: workers
+ - name: waiting
+ - name: beanstalk.binlog
+ description: Binlog
+ unit: "records/s"
+ chart_type: line
+ dimensions:
+ - name: written
+ - name: migrated
+ - name: beanstalk.uptime
+ description: seconds
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - name: tube
+ description: "Metrics related to Beanstalk tubes. Each tube produces its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: beanstalk.jobs_rate
+ description: Jobs Rate
+ unit: "jobs/s"
+ chart_type: area
+ dimensions:
+ - name: jobs
+ - name: beanstalk.jobs
+ description: Jobs
+ unit: "jobs"
+ chart_type: stacked
+ dimensions:
+ - name: urgent
+ - name: ready
+ - name: reserved
+ - name: delayed
+ - name: buried
+ - name: beanstalk.connections
+ description: Connections
+ unit: "connections"
+ chart_type: stacked
+ dimensions:
+ - name: using
+ - name: waiting
+ - name: watching
+ - name: beanstalk.commands
+ description: Commands
+ unit: "commands/s"
+ chart_type: stacked
+ dimensions:
+ - name: deletes
+ - name: pauses
+ - name: beanstalk.pause
+ description: Pause
+ unit: "seconds"
+ chart_type: stacked
+ dimensions:
+ - name: since
+ - name: left
diff --git a/collectors/python.d.plugin/beanstalk/metrics.csv b/collectors/python.d.plugin/beanstalk/metrics.csv
deleted file mode 100644
index fe0219d1a..000000000
--- a/collectors/python.d.plugin/beanstalk/metrics.csv
+++ /dev/null
@@ -1,15 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-beanstalk.cpu_usage,,"user, system",cpu time,Cpu Usage,area,,python.d.plugin,beanstalk
-beanstalk.jobs_rate,,"total, timeouts",jobs/s,Jobs Rate,line,,python.d.plugin,beanstalk
-beanstalk.connections_rate,,connections,connections/s,Connections Rate,area,,python.d.plugin,beanstalk
-beanstalk.commands_rate,,"put, peek, peek-ready, peek-delayed, peek-buried, reserve, use, watch, ignore, delete, bury, kick, stats, stats-job, stats-tube, list-tubes, list-tube-used, list-tubes-watched, pause-tube",commands/s,Commands Rate,stacked,,python.d.plugin,beanstalk
-beanstalk.connections_rate,,tubes,tubes,Current Tubes,area,,python.d.plugin,beanstalk
-beanstalk.current_jobs,,"urgent, ready, reserved, delayed, buried",jobs,Current Jobs,stacked,,python.d.plugin,beanstalk
-beanstalk.current_connections,,"written, producers, workers, waiting",connections,Current Connections,line,,python.d.plugin,beanstalk
-beanstalk.binlog,,"written, migrated",records/s,Binlog,line,,python.d.plugin,beanstalk
-beanstalk.uptime,,uptime,seconds,seconds,line,,python.d.plugin,beanstalk
-beanstalk.jobs_rate,tube,jobs,jobs/s,Jobs Rate,area,,python.d.plugin,beanstalk
-beanstalk.jobs,tube,"urgent, ready, reserved, delayed, buried",jobs,Jobs,stacked,,python.d.plugin,beanstalk
-beanstalk.connections,tube,"using, waiting, watching",connections,Connections,stacked,,python.d.plugin,beanstalk
-beanstalk.commands,tube,"deletes, pauses",commands/s,Commands,stacked,,python.d.plugin,beanstalk
-beanstalk.pause,tube,"since, left",seconds,Pause,stacked,,python.d.plugin,beanstalk
diff --git a/collectors/python.d.plugin/bind_rndc/bind_rndc.conf b/collectors/python.d.plugin/bind_rndc/bind_rndc.conf
index 3b7e9a216..84eaf0594 100644
--- a/collectors/python.d.plugin/bind_rndc/bind_rndc.conf
+++ b/collectors/python.d.plugin/bind_rndc/bind_rndc.conf
@@ -63,14 +63,14 @@
#
# named_stats_path: 'path to named.stats' # Default: '/var/log/bind/named.stats'
#------------------------------------------------------------------------------------------------------------------
-# IMPORTANT Information
+# Important Information
#
-# BIND APPEND logs at EVERY RUN. Its NOT RECOMMENDED to set update_every below 30 sec.
-# STRONGLY RECOMMENDED to create a bind-rndc conf file for logrotate
+# BIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set update_every below 30 sec.
+# It is STRONGLY RECOMMENDED to create a bind-rndc.conf file for logrotate.
#
# To set up your BIND to dump stats do the following:
#
-# 1. add to 'named.conf.options' options {}:
+# 1. Add to 'named.conf.options' options {}:
# statistics-file "/var/log/bind/named.stats";
#
# 2. Create bind/ directory in /var/log
@@ -83,13 +83,12 @@
# systemctl reload bind9.service
#
# 5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory)
-#
#
-# To ALLOW NETDATA TO RUN 'rndc stats' change '/etc/bind/rndc.key' group to netdata
+# To allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata
# chown :netdata rndc.key
#
-# The last BUT NOT least is to create bind-rndc.conf in logrotate.d/
-# The working one
+# Last, BUT NOT least, is to create bind-rndc.conf in logrotate.d/:
+#
# /var/log/bind/named.stats {
#
# daily
@@ -104,7 +103,6 @@
# }
#
# To test your logrotate conf file run as root:
-#
# logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode)
#
# ----------------------------------------------------------------------
diff --git a/collectors/python.d.plugin/bind_rndc/metadata.yaml b/collectors/python.d.plugin/bind_rndc/metadata.yaml
index 72c3acff5..1e9fb24fe 100644
--- a/collectors/python.d.plugin/bind_rndc/metadata.yaml
+++ b/collectors/python.d.plugin/bind_rndc/metadata.yaml
@@ -1,105 +1,191 @@
-meta:
- plugin_name: python.d.plugin
- module_name: bind_rndc
- monitored_instance:
- name: ISCBind (RNDC)
- link: ''
- categories:
- - data-collection.dns-and-dhcp-servers
- icon_filename: 'isc.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: bind_rndc_stats_file_size
- link: https://github.com/netdata/netdata/blob/master/health/health.d/bind_rndc.conf
- metric: bind_rndc.stats_size
- info: BIND statistics-file size
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: bind_rndc
+ monitored_instance:
+ name: ISCBind (RNDC)
+ link: "https://www.isc.org/bind/"
+ categories:
+ - data-collection.dns-and-dhcp-servers
+ icon_filename: "isc.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - dns
+ - bind
+ - server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery."
+ method_description: "This collector uses the `rndc` tool to dump (named.stats) statistics then read them to gather Bind Name Server summary performance metrics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "If no configuration is given, the collector will attempt to read named.stats file at `/var/log/bind/named.stats`"
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Minimum bind version and permissions"
+ description: "Version of bind must be >=9.6 and the Netdata user must have permissions to run `rndc stats`"
+ - title: "Setup log rotate for bind stats"
+ description: |
+ BIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set `update_every` below 30 sec.
+ It is STRONGLY RECOMMENDED to create a `bind-rndc.conf` file for logrotate.
+
+ To set up BIND to dump stats do the following:
+
+ 1. Add to 'named.conf.options' options {}:
+ `statistics-file "/var/log/bind/named.stats";`
+
+ 2. Create bind/ directory in /var/log:
+ `cd /var/log/ && mkdir bind`
+
+ 3. Change owner of directory to 'bind' user:
+ `chown bind bind/`
+
+ 4. RELOAD (NOT restart) BIND:
+ `systemctl reload bind9.service`
+
+ 5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory)
+
+ To allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata:
+ `chown :netdata rndc.key`
+
+ Last, BUT NOT least, is to create bind-rndc.conf in logrotate.d/:
+ ```
+ /var/log/bind/named.stats {
+
+ daily
+ rotate 4
+ compress
+ delaycompress
+ create 0644 bind bind
+ missingok
+ postrotate
+ rndc reload > /dev/null
+ endscript
+ }
+ ```
+ To test your logrotate conf file run as root:
+ `logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode)`
+ configuration:
+ file:
+ name: python.d/bind_rndc.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: named_stats_path
+ description: Path to the named stats, after being dumped by `nrdc`
+ default_value: "/var/log/bind/named.stats"
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Local bind stats
+ description: Define a local path to bind stats file
+ config: |
+ local:
+ named_stats_path: '/var/log/bind/named.stats'
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: bind_rndc_stats_file_size
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/bind_rndc.conf
+ metric: bind_rndc.stats_size
+ info: BIND statistics-file size
metrics:
- - name: bind_rndc.name_server_statistics
- description: Name Server Statistics
- unit: "stats"
- chart_type: line
- dimensions:
- - name: requests
- - name: rejected_queries
- - name: success
- - name: failure
- - name: responses
- - name: duplicate
- - name: recursion
- - name: nxrrset
- - name: nxdomain
- - name: non_auth_answer
- - name: auth_answer
- - name: dropped_queries
- - name: bind_rndc.incoming_queries
- description: Incoming queries
- unit: "queries"
- chart_type: line
- dimensions:
- - name: a dimension per incoming query type
- - name: bind_rndc.outgoing_queries
- description: Outgoing queries
- unit: "queries"
- chart_type: line
- dimensions:
- - name: a dimension per outgoing query type
- - name: bind_rndc.stats_size
- description: Named Stats File Size
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: stats_size
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: bind_rndc.name_server_statistics
+ description: Name Server Statistics
+ unit: "stats"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: rejected_queries
+ - name: success
+ - name: failure
+ - name: responses
+ - name: duplicate
+ - name: recursion
+ - name: nxrrset
+ - name: nxdomain
+ - name: non_auth_answer
+ - name: auth_answer
+ - name: dropped_queries
+ - name: bind_rndc.incoming_queries
+ description: Incoming queries
+ unit: "queries"
+ chart_type: line
+ dimensions:
+ - name: a dimension per incoming query type
+ - name: bind_rndc.outgoing_queries
+ description: Outgoing queries
+ unit: "queries"
+ chart_type: line
+ dimensions:
+ - name: a dimension per outgoing query type
+ - name: bind_rndc.stats_size
+ description: Named Stats File Size
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: stats_size
diff --git a/collectors/python.d.plugin/bind_rndc/metrics.csv b/collectors/python.d.plugin/bind_rndc/metrics.csv
deleted file mode 100644
index 3b0733099..000000000
--- a/collectors/python.d.plugin/bind_rndc/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-bind_rndc.name_server_statistics,,"requests, rejected_queries, success, failure, responses, duplicate, recursion, nxrrset, nxdomain, non_auth_answer, auth_answer, dropped_queries",stats,Name Server Statistics,line,,python.d.plugin,bind_rndc
-bind_rndc.incoming_queries,,a dimension per incoming query type,queries,Incoming queries,line,,python.d.plugin,bind_rndc
-bind_rndc.outgoing_queries,,a dimension per outgoing query type,queries,Outgoing queries,line,,python.d.plugin,bind_rndc
-bind_rndc.stats_size,,stats_size,MiB,Named Stats File Size,line,,python.d.plugin,bind_rndc
diff --git a/collectors/python.d.plugin/boinc/metadata.yaml b/collectors/python.d.plugin/boinc/metadata.yaml
index a0a7bb323..33a67ac34 100644
--- a/collectors/python.d.plugin/boinc/metadata.yaml
+++ b/collectors/python.d.plugin/boinc/metadata.yaml
@@ -1,125 +1,198 @@
-meta:
- plugin_name: python.d.plugin
- module_name: boinc
- monitored_instance:
- name: BOINC
- link: ''
- categories:
- - data-collection.distributed-computing-systems
- icon_filename: 'bolt.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Study BOINC metrics to gain insights into volunteer computing projects. Examine computation times, task completion rates, and project statuses to enhance volunteer computing efforts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: boinc_total_tasks
- link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
- metric: boinc.tasks
- info: average number of total tasks over the last 10 minutes
- os: "*"
-- name: boinc_active_tasks
- link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
- metric: boinc.tasks
- info: average number of active tasks over the last 10 minutes
- os: "*"
-- name: boinc_compute_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
- metric: boinc.states
- info: average number of compute errors over the last 10 minutes
- os: "*"
-- name: boinc_upload_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
- metric: boinc.states
- info: average number of failed uploads over the last 10 minutes
- os: "*"
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: boinc
+ monitored_instance:
+ name: BOINC
+ link: "https://boinc.berkeley.edu/"
+ categories:
+ - data-collection.distributed-computing-systems
+ icon_filename: "bolt.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - boinc
+ - distributed
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors task counts for the Berkeley Open Infrastructure Networking Computing (BOINC) distributed computing client."
+ method_description: "It uses the same RPC interface that the BOINC monitoring GUI does."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "By default, the module will try to auto-detect the password to the RPC interface by looking in `/var/lib/boinc` for this file (this is the location most Linux distributions use for a system-wide BOINC installation), so things may just work without needing configuration for a local system."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Boinc RPC interface"
+ description: BOINC requires use of a password to access it's RPC interface. You can find this password in the `gui_rpc_auth.cfg` file in your BOINC directory.
+ configuration:
+ file:
+ name: python.d/boinc.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: hostname
+ description: Define a hostname where boinc is running.
+ default_value: "localhost"
+ required: false
+ - name: port
+ description: The port of boinc RPC interface.
+ default_value: ""
+ required: false
+ - name: password
+ description: Provide a password to connect to a boinc RPC interface.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Configuration of a remote boinc instance
+ description: A basic JOB configuration for a remote boinc instance
+ folding:
+ enabled: false
+ config: |
+ remote:
+ hostname: '1.2.3.4'
+ port: 1234
+ password: 'some-password'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 1234
+ password: 'some-password'
+
+ remote_job:
+ name: 'remote'
+ host: '192.0.2.1'
+ port: 1234
+ password: some-other-password
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: boinc_total_tasks
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
+ metric: boinc.tasks
+ info: average number of total tasks over the last 10 minutes
+ os: "*"
+ - name: boinc_active_tasks
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
+ metric: boinc.tasks
+ info: average number of active tasks over the last 10 minutes
+ os: "*"
+ - name: boinc_compute_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
+ metric: boinc.states
+ info: average number of compute errors over the last 10 minutes
+ os: "*"
+ - name: boinc_upload_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf
+ metric: boinc.states
+ info: average number of failed uploads over the last 10 minutes
+ os: "*"
metrics:
- - name: boinc.tasks
- description: Overall Tasks
- unit: "tasks"
- chart_type: line
- dimensions:
- - name: Total
- - name: Active
- - name: boinc.states
- description: Tasks per State
- unit: "tasks"
- chart_type: line
- dimensions:
- - name: New
- - name: Downloading
- - name: Ready to Run
- - name: Compute Errors
- - name: Uploading
- - name: Uploaded
- - name: Aborted
- - name: Failed Uploads
- - name: boinc.sched
- description: Tasks per Scheduler State
- unit: "tasks"
- chart_type: line
- dimensions:
- - name: Uninitialized
- - name: Preempted
- - name: Scheduled
- - name: boinc.process
- description: Tasks per Process State
- unit: "tasks"
- chart_type: line
- dimensions:
- - name: Uninitialized
- - name: Executing
- - name: Suspended
- - name: Aborted
- - name: Quit
- - name: Copy Pending
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: boinc.tasks
+ description: Overall Tasks
+ unit: "tasks"
+ chart_type: line
+ dimensions:
+ - name: Total
+ - name: Active
+ - name: boinc.states
+ description: Tasks per State
+ unit: "tasks"
+ chart_type: line
+ dimensions:
+ - name: New
+ - name: Downloading
+ - name: Ready to Run
+ - name: Compute Errors
+ - name: Uploading
+ - name: Uploaded
+ - name: Aborted
+ - name: Failed Uploads
+ - name: boinc.sched
+ description: Tasks per Scheduler State
+ unit: "tasks"
+ chart_type: line
+ dimensions:
+ - name: Uninitialized
+ - name: Preempted
+ - name: Scheduled
+ - name: boinc.process
+ description: Tasks per Process State
+ unit: "tasks"
+ chart_type: line
+ dimensions:
+ - name: Uninitialized
+ - name: Executing
+ - name: Suspended
+ - name: Aborted
+ - name: Quit
+ - name: Copy Pending
diff --git a/collectors/python.d.plugin/boinc/metrics.csv b/collectors/python.d.plugin/boinc/metrics.csv
deleted file mode 100644
index 98c6e8660..000000000
--- a/collectors/python.d.plugin/boinc/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-boinc.tasks,,"Total, Active",tasks,Overall Tasks,line,,python.d.plugin,boinc
-boinc.states,,"New, Downloading, Ready to Run, Compute Errors, Uploading, Uploaded, Aborted, Failed Uploads",tasks,Tasks per State,line,,python.d.plugin,boinc
-boinc.sched,,"Uninitialized, Preempted, Scheduled",tasks,Tasks per Scheduler State,line,,python.d.plugin,boinc
-boinc.process,,"Uninitialized, Executing, Suspended, Aborted, Quit, Copy Pending",tasks,Tasks per Process State,line,,python.d.plugin,boinc
diff --git a/collectors/python.d.plugin/ceph/metadata.yaml b/collectors/python.d.plugin/ceph/metadata.yaml
index eabf6b26d..0f06470b1 100644
--- a/collectors/python.d.plugin/ceph/metadata.yaml
+++ b/collectors/python.d.plugin/ceph/metadata.yaml
@@ -1,164 +1,223 @@
-meta:
- plugin_name: python.d.plugin
- module_name: ceph
- monitored_instance:
- name: Ceph
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'ceph.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Ceph metrics for efficient distributed storage system performance. Keep tabs on cluster health, data redundancy, and latency to ensure reliable storage operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: ceph_cluster_space_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ceph.conf
- metric: ceph.general_usage
- info: cluster disk space utilization
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: ceph
+ monitored_instance:
+ name: Ceph
+ link: 'https://ceph.io/'
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: 'ceph.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - ceph
+ - storage
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors Ceph metrics about Cluster statistics, OSD usage, latency and Pool statistics.'
+ method_description: 'Uses the `rados` python module to connect to a Ceph cluster.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: ''
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: '`rados` python module'
+ description: 'Make sure the `rados` python module is installed'
+ - title: 'Granting read permissions to ceph group from keyring file'
+ description: 'Execute: `chmod 640 /etc/ceph/ceph.client.admin.keyring`'
+ - title: 'Create a specific rados_id'
+ description: 'You can optionally create a rados_id to use instead of admin'
+ configuration:
+ file:
+ name: python.d/ceph.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: config_file
+ description: Ceph config file
+ default_value: ''
+ required: true
+ - name: keyring_file
+ description: Ceph keyring file. netdata user must be added into ceph group and keyring file must be read group permission.
+ default_value: ''
+ required: true
+ - name: rados_id
+ description: A rados user id to use for connecting to the Ceph cluster.
+ default_value: 'admin'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic local Ceph cluster
+ description: A basic configuration to connect to a local Ceph cluster.
+ folding:
+ enabled: false
+ config: |
+ local:
+ config_file: '/etc/ceph/ceph.conf'
+ keyring_file: '/etc/ceph/ceph.client.admin.keyring'
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ceph_cluster_space_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ceph.conf
+ metric: ceph.general_usage
+ info: cluster disk space utilization
metrics:
- - name: ceph.general_usage
- description: Ceph General Space
- unit: "KiB"
- chart_type: stacked
- dimensions:
- - name: avail
- - name: used
- - name: ceph.general_objects
- description: Ceph General Objects
- unit: "objects"
- chart_type: area
- dimensions:
- - name: cluster
- - name: ceph.general_bytes
- description: Ceph General Read/Write Data/s
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: ceph.general_operations
- description: Ceph General Read/Write Operations/s
- unit: "operations"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: ceph.general_latency
- description: Ceph General Apply/Commit latency
- unit: "milliseconds"
- chart_type: area
- dimensions:
- - name: apply
- - name: commit
- - name: ceph.pool_usage
- description: Ceph Pools
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.pool_objects
- description: Ceph Pools
- unit: "objects"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.pool_read_bytes
- description: Ceph Read Pool Data/s
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.pool_write_bytes
- description: Ceph Write Pool Data/s
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.pool_read_operations
- description: Ceph Read Pool Operations/s
- unit: "operations"
- chart_type: area
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.pool_write_operations
- description: Ceph Write Pool Operations/s
- unit: "operations"
- chart_type: area
- dimensions:
- - name: a dimension per Ceph Pool
- - name: ceph.osd_usage
- description: Ceph OSDs
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph OSD
- - name: ceph.osd_size
- description: Ceph OSDs size
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph OSD
- - name: ceph.apply_latency
- description: Ceph OSDs apply latency
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph OSD
- - name: ceph.commit_latency
- description: Ceph OSDs commit latency
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per Ceph OSD
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: ceph.general_usage
+ description: Ceph General Space
+ unit: "KiB"
+ chart_type: stacked
+ dimensions:
+ - name: avail
+ - name: used
+ - name: ceph.general_objects
+ description: Ceph General Objects
+ unit: "objects"
+ chart_type: area
+ dimensions:
+ - name: cluster
+ - name: ceph.general_bytes
+ description: Ceph General Read/Write Data/s
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: ceph.general_operations
+ description: Ceph General Read/Write Operations/s
+ unit: "operations"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: ceph.general_latency
+ description: Ceph General Apply/Commit latency
+ unit: "milliseconds"
+ chart_type: area
+ dimensions:
+ - name: apply
+ - name: commit
+ - name: ceph.pool_usage
+ description: Ceph Pools
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.pool_objects
+ description: Ceph Pools
+ unit: "objects"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.pool_read_bytes
+ description: Ceph Read Pool Data/s
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.pool_write_bytes
+ description: Ceph Write Pool Data/s
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.pool_read_operations
+ description: Ceph Read Pool Operations/s
+ unit: "operations"
+ chart_type: area
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.pool_write_operations
+ description: Ceph Write Pool Operations/s
+ unit: "operations"
+ chart_type: area
+ dimensions:
+ - name: a dimension per Ceph Pool
+ - name: ceph.osd_usage
+ description: Ceph OSDs
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph OSD
+ - name: ceph.osd_size
+ description: Ceph OSDs size
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph OSD
+ - name: ceph.apply_latency
+ description: Ceph OSDs apply latency
+ unit: "milliseconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph OSD
+ - name: ceph.commit_latency
+ description: Ceph OSDs commit latency
+ unit: "milliseconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per Ceph OSD
diff --git a/collectors/python.d.plugin/ceph/metrics.csv b/collectors/python.d.plugin/ceph/metrics.csv
deleted file mode 100644
index e64f2cf53..000000000
--- a/collectors/python.d.plugin/ceph/metrics.csv
+++ /dev/null
@@ -1,16 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-ceph.general_usage,,"avail, used",KiB,Ceph General Space,stacked,,python.d.plugin,ceph
-ceph.general_objects,,cluster,objects,Ceph General Objects,area,,python.d.plugin,ceph
-ceph.general_bytes,,"read, write",KiB/s,Ceph General Read/Write Data/s,area,,python.d.plugin,ceph
-ceph.general_operations,,"read, write",operations,Ceph General Read/Write Operations/s,area,,python.d.plugin,ceph
-ceph.general_latency,,"apply, commit",milliseconds,Ceph General Apply/Commit latency,area,,python.d.plugin,ceph
-ceph.pool_usage,,a dimension per Ceph Pool,KiB,Ceph Pools,line,,python.d.plugin,ceph
-ceph.pool_objects,,a dimension per Ceph Pool,objects,Ceph Pools,line,,python.d.plugin,ceph
-ceph.pool_read_bytes,,a dimension per Ceph Pool,KiB/s,Ceph Read Pool Data/s,area,,python.d.plugin,ceph
-ceph.pool_write_bytes,,a dimension per Ceph Pool,KiB/s,Ceph Write Pool Data/s,area,,python.d.plugin,ceph
-ceph.pool_read_operations,,a dimension per Ceph Pool,operations,Ceph Read Pool Operations/s,area,,python.d.plugin,ceph
-ceph.pool_write_operations,,a dimension per Ceph Pool,operations,Ceph Write Pool Operations/s,area,,python.d.plugin,ceph
-ceph.osd_usage,,a dimension per Ceph OSD,KiB,Ceph OSDs,line,,python.d.plugin,ceph
-ceph.osd_size,,a dimension per Ceph OSD,KiB,Ceph OSDs size,line,,python.d.plugin,ceph
-ceph.apply_latency,,a dimension per Ceph OSD,milliseconds,Ceph OSDs apply latency,line,,python.d.plugin,ceph
-ceph.commit_latency,,a dimension per Ceph OSD,milliseconds,Ceph OSDs commit latency,line,,python.d.plugin,ceph
diff --git a/collectors/python.d.plugin/changefinder/metadata.yaml b/collectors/python.d.plugin/changefinder/metadata.yaml
index 99b28e48d..6dcd903e7 100644
--- a/collectors/python.d.plugin/changefinder/metadata.yaml
+++ b/collectors/python.d.plugin/changefinder/metadata.yaml
@@ -1,77 +1,80 @@
-meta:
- plugin_name: python.d.plugin
- module_name: changefinder
- monitored_instance:
- name: python.d changefinder
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: changefinder
+ monitored_instance:
+ name: python.d changefinder
+ link: ''
+ categories:
+ - data-collection.other
+ icon_filename: ''
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: ''
+ method_description: ''
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: ''
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ''
+ description: ''
+ options:
+ description: ''
+ folding:
+ title: ''
+ enabled: true
+ list: []
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: changefinder.scores
- description: ChangeFinder
- unit: "score"
- chart_type: line
- dimensions:
- - name: a dimension per chart
- - name: changefinder.flags
- description: ChangeFinder
- unit: "flag"
- chart_type: stacked
- dimensions:
- - name: a dimension per chart
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: changefinder.scores
+ description: ChangeFinder
+ unit: "score"
+ chart_type: line
+ dimensions:
+ - name: a dimension per chart
+ - name: changefinder.flags
+ description: ChangeFinder
+ unit: "flag"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per chart
diff --git a/collectors/python.d.plugin/changefinder/metrics.csv b/collectors/python.d.plugin/changefinder/metrics.csv
deleted file mode 100644
index ecad582ba..000000000
--- a/collectors/python.d.plugin/changefinder/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-changefinder.scores,,a dimension per chart,score,ChangeFinder,line,,python.d.plugin,changefinder
-changefinder.flags,,a dimension per chart,flag,ChangeFinder,stacked,,python.d.plugin,changefinder
diff --git a/collectors/python.d.plugin/dovecot/metadata.yaml b/collectors/python.d.plugin/dovecot/metadata.yaml
index 35d820ef4..b247da846 100644
--- a/collectors/python.d.plugin/dovecot/metadata.yaml
+++ b/collectors/python.d.plugin/dovecot/metadata.yaml
@@ -1,146 +1,207 @@
-meta:
- plugin_name: python.d.plugin
- module_name: dovecot
- monitored_instance:
- name: Dovecot
- link: ''
- categories:
- - data-collection.mail-servers
- icon_filename: 'dovecot.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine Dovecot metrics for insights into IMAP and POP3 server operations. Analyze connection statuses, mailbox operations, and error rates for efficient mail server operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: dovecot
+ monitored_instance:
+ name: Dovecot
+ link: 'https://www.dovecot.org/'
+ categories:
+ - data-collection.mail-servers
+ icon_filename: 'dovecot.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - dovecot
+ - imap
+ - mail
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors Dovecot metrics about sessions, logins, commands, page faults and more.'
+ method_description: 'It uses the dovecot socket and executes the `EXPORT global` command to get the statistics.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'If no configuration is given, the collector will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Dovecot configuration'
+ description: The Dovecot UNIX socket should have R/W permissions for user netdata, or Dovecot should be configured with a TCP/IP socket.
+ configuration:
+ file:
+ name: python.d/dovecot.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: socket
+ description: Use this socket to communicate with Devcot
+ default_value: /var/run/dovecot/stats
+ required: false
+ - name: host
+ description: Instead of using a socket, you can point the collector to an ip for devcot statistics.
+ default_value: ''
+ required: false
+ - name: port
+ description: Used in combination with host, configures the port devcot listens to.
+ default_value: ''
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Local TCP
+ description: A basic TCP configuration.
+ config: |
+ localtcpip:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 24242
+ - name: Local socket
+ description: A basic local socket configuration
+ config: |
+ localsocket:
+ name: 'local'
+ socket: '/var/run/dovecot/stats'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: dovecot.sessions
- description: Dovecot Active Sessions
- unit: "number"
- chart_type: line
- dimensions:
- - name: active sessions
- - name: dovecot.logins
- description: Dovecot Logins
- unit: "number"
- chart_type: line
- dimensions:
- - name: logins
- - name: dovecot.commands
- description: Dovecot Commands
- unit: "commands"
- chart_type: line
- dimensions:
- - name: commands
- - name: dovecot.faults
- description: Dovecot Page Faults
- unit: "faults"
- chart_type: line
- dimensions:
- - name: minor
- - name: major
- - name: dovecot.context_switches
- description: Dovecot Context Switches
- unit: "switches"
- chart_type: line
- dimensions:
- - name: voluntary
- - name: involuntary
- - name: dovecot.io
- description: Dovecot Disk I/O
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: dovecot.net
- description: Dovecot Network Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
- - name: dovecot.syscalls
- description: Dovecot Number of SysCalls
- unit: "syscalls/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: dovecot.lookup
- description: Dovecot Lookups
- unit: "number/s"
- chart_type: stacked
- dimensions:
- - name: path
- - name: attr
- - name: dovecot.cache
- description: Dovecot Cache Hits
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hits
- - name: dovecot.auth
- description: Dovecot Authentications
- unit: "attempts"
- chart_type: stacked
- dimensions:
- - name: ok
- - name: failed
- - name: dovecot.auth_cache
- description: Dovecot Authentication Cache
- unit: "number"
- chart_type: stacked
- dimensions:
- - name: hit
- - name: miss
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: dovecot.sessions
+ description: Dovecot Active Sessions
+ unit: "number"
+ chart_type: line
+ dimensions:
+ - name: active sessions
+ - name: dovecot.logins
+ description: Dovecot Logins
+ unit: "number"
+ chart_type: line
+ dimensions:
+ - name: logins
+ - name: dovecot.commands
+ description: Dovecot Commands
+ unit: "commands"
+ chart_type: line
+ dimensions:
+ - name: commands
+ - name: dovecot.faults
+ description: Dovecot Page Faults
+ unit: "faults"
+ chart_type: line
+ dimensions:
+ - name: minor
+ - name: major
+ - name: dovecot.context_switches
+ description: Dovecot Context Switches
+ unit: "switches"
+ chart_type: line
+ dimensions:
+ - name: voluntary
+ - name: involuntary
+ - name: dovecot.io
+ description: Dovecot Disk I/O
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: dovecot.net
+ description: Dovecot Network Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
+ - name: dovecot.syscalls
+ description: Dovecot Number of SysCalls
+ unit: "syscalls/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: dovecot.lookup
+ description: Dovecot Lookups
+ unit: "number/s"
+ chart_type: stacked
+ dimensions:
+ - name: path
+ - name: attr
+ - name: dovecot.cache
+ description: Dovecot Cache Hits
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hits
+ - name: dovecot.auth
+ description: Dovecot Authentications
+ unit: "attempts"
+ chart_type: stacked
+ dimensions:
+ - name: ok
+ - name: failed
+ - name: dovecot.auth_cache
+ description: Dovecot Authentication Cache
+ unit: "number"
+ chart_type: stacked
+ dimensions:
+ - name: hit
+ - name: miss
diff --git a/collectors/python.d.plugin/dovecot/metrics.csv b/collectors/python.d.plugin/dovecot/metrics.csv
deleted file mode 100644
index dbffd0b3e..000000000
--- a/collectors/python.d.plugin/dovecot/metrics.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-dovecot.sessions,,active sessions,number,Dovecot Active Sessions,line,,python.d.plugin,dovecot
-dovecot.logins,,logins,number,Dovecot Logins,line,,python.d.plugin,dovecot
-dovecot.commands,,commands,commands,Dovecot Commands,line,,python.d.plugin,dovecot
-dovecot.faults,,"minor, major",faults,Dovecot Page Faults,line,,python.d.plugin,dovecot
-dovecot.context_switches,,"voluntary, involuntary",switches,Dovecot Context Switches,line,,python.d.plugin,dovecot
-dovecot.io,,"read, write",KiB/s,Dovecot Disk I/O,area,,python.d.plugin,dovecot
-dovecot.net,,"read, write",kilobits/s,Dovecot Network Bandwidth,area,,python.d.plugin,dovecot
-dovecot.syscalls,,"read, write",syscalls/s,Dovecot Number of SysCalls,line,,python.d.plugin,dovecot
-dovecot.lookup,,"path, attr",number/s,Dovecot Lookups,stacked,,python.d.plugin,dovecot
-dovecot.cache,,hits,hits/s,Dovecot Cache Hits,line,,python.d.plugin,dovecot
-dovecot.auth,,"ok, failed",attempts,Dovecot Authentications,stacked,,python.d.plugin,dovecot
-dovecot.auth_cache,,"hit, miss",number,Dovecot Authentication Cache,stacked,,python.d.plugin,dovecot
diff --git a/collectors/python.d.plugin/example/metadata.yaml b/collectors/python.d.plugin/example/metadata.yaml
new file mode 100644
index 000000000..eae84d9e1
--- /dev/null
+++ b/collectors/python.d.plugin/example/metadata.yaml
@@ -0,0 +1,138 @@
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: example
+ monitored_instance:
+ name: Example collector
+ link: https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/example/README.md
+ categories:
+ - data-collection.other
+ icon_filename: ""
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - example
+ - netdata
+ - python
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Example collector that generates some random numbers as metrics.
+
+ If you want to write your own collector, read our [writing a new Python module](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#how-to-write-a-new-module) tutorial.
+ method_description: |
+ The `get_data()` function uses `random.randint()` to generate a random number which will be collected as a metric.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: python.d/example.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: num_lines
+ description: The number of lines to create.
+ default_value: 4
+ required: false
+ - name: lower
+ description: The lower bound of numbers to randomly sample from.
+ default_value: 0
+ required: false
+ - name: upper
+ description: The upper bound of numbers to randomly sample from.
+ default_value: 100
+ required: false
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: Config
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration.
+ config: |
+ four_lines:
+ name: "Four Lines"
+ update_every: 1
+ priority: 60000
+ penalty: yes
+ autodetection_retry: 0
+ num_lines: 4
+ lower: 0
+ upper: 100
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to the entire monitored application.
+ labels: []
+ metrics:
+ - name: example.random
+ description: A random number
+ unit: number
+ chart_type: line
+ dimensions:
+ - name: random
diff --git a/collectors/python.d.plugin/exim/metadata.yaml b/collectors/python.d.plugin/exim/metadata.yaml
index 092479a0c..a8be02d99 100644
--- a/collectors/python.d.plugin/exim/metadata.yaml
+++ b/collectors/python.d.plugin/exim/metadata.yaml
@@ -1,72 +1,132 @@
-meta:
- plugin_name: python.d.plugin
- module_name: exim
- monitored_instance:
- name: Exim
- link: ''
- categories:
- - data-collection.mail-servers
- icon_filename: 'exim.jpg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Exim metrics for efficient mail transfer'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: exim
+ monitored_instance:
+ name: Exim
+ link: "https://www.exim.org/"
+ categories:
+ - data-collection.mail-servers
+ icon_filename: "exim.jpg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - exim
+ - mail
+ - server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors Exim mail queue."
+ method_description: "It uses the `exim` command line binary to get the statistics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "Assuming setup prerequisites are met, the collector will try to gather statistics using the method described above, even without any configuration."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Exim configuration - local installation"
+ description: |
+ The module uses the `exim` binary, which can only be executed as root by default. We need to allow other users to `exim` binary. We solve that adding `queue_list_requires_admin` statement in exim configuration and set to `false`, because it is `true` by default. On many Linux distributions, the default location of `exim` configuration is in `/etc/exim.conf`.
+
+ 1. Edit the `exim` configuration with your preferred editor and add:
+ `queue_list_requires_admin = false`
+ 2. Restart `exim` and Netdata
+ - title: "Exim configuration - WHM (CPanel) server"
+ description: |
+ On a WHM server, you can reconfigure `exim` over the WHM interface with the following steps.
+
+ 1. Login to WHM
+ 2. Navigate to Service Configuration --> Exim Configuration Manager --> tab Advanced Editor
+ 3. Scroll down to the button **Add additional configuration setting** and click on it.
+ 4. In the new dropdown which will appear above we need to find and choose:
+ `queue_list_requires_admin` and set to `false`
+ 5. Scroll to the end and click the **Save** button.
+ configuration:
+ file:
+ name: python.d/exim.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: command
+ description: Path and command to the `exim` binary
+ default_value: "exim -bpc"
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Local exim install
+ description: A basic local exim install
+ config: |
+ local:
+ command: 'exim -bpc'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: exim.qemails
- description: Exim Queue Emails
- unit: "emails"
- chart_type: line
- dimensions:
- - name: emails
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: exim.qemails
+ description: Exim Queue Emails
+ unit: "emails"
+ chart_type: line
+ dimensions:
+ - name: emails
diff --git a/collectors/python.d.plugin/exim/metrics.csv b/collectors/python.d.plugin/exim/metrics.csv
deleted file mode 100644
index 8e6cc0c22..000000000
--- a/collectors/python.d.plugin/exim/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-exim.qemails,,emails,emails,Exim Queue Emails,line,,python.d.plugin,exim
diff --git a/collectors/python.d.plugin/fail2ban/metadata.yaml b/collectors/python.d.plugin/fail2ban/metadata.yaml
index 1c906c67c..80aa68b62 100644
--- a/collectors/python.d.plugin/fail2ban/metadata.yaml
+++ b/collectors/python.d.plugin/fail2ban/metadata.yaml
@@ -1,84 +1,180 @@
-meta:
- plugin_name: python.d.plugin
- module_name: fail2ban
- monitored_instance:
- name: Fail2ban
- link: ''
- categories:
- - data-collection.authentication-and-authorization
- icon_filename: 'fail2ban.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: fail2ban
+ monitored_instance:
+ name: Fail2ban
+ link: https://www.fail2ban.org/
+ categories:
+ - data-collection.authentication-and-authorization
+ icon_filename: "fail2ban.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - fail2ban
+ - security
+ - authentication
+ - authorization
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Monitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security.
+ method_description: |
+ It collects metrics through reading the default log and configuration files of fail2ban.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: |
+ The `fail2ban.log` file must be readable by the user `netdata`.
+ - change the file ownership and access permissions.
+ - update `/etc/logrotate.d/fail2ban`` to persist the changes after rotating the log file.
+
+ To change the file ownership and access permissions, execute the following:
+
+ ```shell
+ sudo chown root:netdata /var/log/fail2ban.log
+ sudo chmod 640 /var/log/fail2ban.log
+ ```
+
+ To persist the changes after rotating the log file, add `create 640 root netdata` to the `/etc/logrotate.d/fail2ban`:
+
+ ```shell
+ /var/log/fail2ban.log {
+
+ weekly
+ rotate 4
+ compress
+
+ delaycompress
+ missingok
+ postrotate
+ fail2ban-client flushlogs 1>/dev/null
+ endscript
+
+ # If fail2ban runs as non-root it still needs to have write access
+ # to logfiles.
+ # create 640 fail2ban adm
+ create 640 root netdata
+ }
+ ```
+ default_behavior:
+ auto_detection:
+ description: |
+ By default the collector will attempt to read log file at /var/log/fail2ban.log and conf file at /etc/fail2ban/jail.local. If conf file is not found default jail is ssh.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: log_path
+ description: path to fail2ban.log.
+ default_value: /var/log/fail2ban.log
+ required: false
+ - name: conf_path
+ description: path to jail.local/jail.conf.
+ default_value: /etc/fail2ban/jail.local
+ required: false
+ - name: conf_dir
+ description: path to jail.d/.
+ default_value: /etc/fail2ban/jail.d/
+ required: false
+ - name: exclude
+ description: jails you want to exclude from autodetection.
+ default_value: ""
+ required: false
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: Config
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration.
+ config: |
+ local:
+ log_path: '/var/log/fail2ban.log'
+ conf_path: '/etc/fail2ban/jail.local'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: fail2ban.faile_attempts
- description: Failed attempts
- unit: "attempts/s"
- chart_type: line
- dimensions:
- - name: a dimension per jail
- - name: fail2ban.bans
- description: Bans
- unit: "bans/s"
- chart_type: line
- dimensions:
- - name: a dimension per jail
- - name: fail2ban.banned_ips
- description: Banned IP addresses (since the last restart of netdata)
- unit: "ips"
- chart_type: line
- dimensions:
- - name: a dimension per jail
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to the entire monitored application.
+ labels: []
+ metrics:
+ - name: fail2ban.failed_attempts
+ description: Failed attempts
+ unit: "attempts/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per jail
+ - name: fail2ban.bans
+ description: Bans
+ unit: "bans/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per jail
+ - name: fail2ban.banned_ips
+ description: Banned IP addresses (since the last restart of netdata)
+ unit: "ips"
+ chart_type: line
+ dimensions:
+ - name: a dimension per jail
diff --git a/collectors/python.d.plugin/fail2ban/metrics.csv b/collectors/python.d.plugin/fail2ban/metrics.csv
deleted file mode 100644
index 13ef80f40..000000000
--- a/collectors/python.d.plugin/fail2ban/metrics.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-fail2ban.faile_attempts,,a dimension per jail,attempts/s,Failed attempts,line,,python.d.plugin,fail2ban
-fail2ban.bans,,a dimension per jail,bans/s,Bans,line,,python.d.plugin,fail2ban
-fail2ban.banned_ips,,a dimension per jail,ips,Banned IP addresses (since the last restart of netdata),line,,python.d.plugin,fail2ban
diff --git a/collectors/python.d.plugin/gearman/gearman.conf b/collectors/python.d.plugin/gearman/gearman.conf
index c41fd9ffd..635e893ef 100644
--- a/collectors/python.d.plugin/gearman/gearman.conf
+++ b/collectors/python.d.plugin/gearman/gearman.conf
@@ -61,8 +61,11 @@
#
# Additionally to the above, gearman also supports the following:
#
-# hostname: localhost # The host running the Gearman server
+# host: localhost # The host running the Gearman server
# port: 4730 # Port of the Gearman server
+# tls: no # Whether to use TLS or not
+# cert: /path/to/cert # Path to cert if using TLS
+# key: /path/to/key # Path to key if using TLS
# ----------------------------------------------------------------------
# AUTO-DETECTION JOB
diff --git a/collectors/python.d.plugin/gearman/metadata.yaml b/collectors/python.d.plugin/gearman/metadata.yaml
index 49d4e27b5..f1760568e 100644
--- a/collectors/python.d.plugin/gearman/metadata.yaml
+++ b/collectors/python.d.plugin/gearman/metadata.yaml
@@ -1,89 +1,168 @@
-meta:
- plugin_name: python.d.plugin
- module_name: gearman
- monitored_instance:
- name: Gearman
- link: ''
- categories:
- - data-collection.distributed-computing-systems
- icon_filename: 'gearman.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: gearman_workers_queued
- link: https://github.com/netdata/netdata/blob/master/health/health.d/gearman.conf
- metric: gearman.single_job
- info: average number of queued jobs over the last 10 minutes
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: gearman
+ monitored_instance:
+ name: Gearman
+ link: "http://gearman.org/"
+ categories:
+ - data-collection.distributed-computing-systems
+ icon_filename: "gearman.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - gearman
+ - gearman job server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management."
+ method_description: "This collector connects to a Gearman instance via either TCP or unix socket."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "When no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Socket permissions"
+ description: The gearman UNIX socket should have read permission for user netdata.
+ configuration:
+ file:
+ name: python.d/gearman.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: host
+ description: URL or IP where gearman is running.
+ default_value: "localhost"
+ required: false
+ - name: port
+ description: Port of URL or IP where gearman is running.
+ default_value: "4730"
+ required: false
+ - name: tls
+ description: Use tls to connect to gearman.
+ default_value: "false"
+ required: false
+ - name: cert
+ description: Provide a certificate file if needed to connect to a TLS gearman instance.
+ default_value: ""
+ required: false
+ - name: key
+ description: Provide a key file if needed to connect to a TLS gearman instance.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Local gearman service
+ description: A basic host and port gearman configuration for localhost.
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name: 'local'
+ host: 'localhost'
+ port: 4730
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local'
+ host: 'localhost'
+ port: 4730
+
+ remote:
+ name: 'remote'
+ host: '192.0.2.1'
+ port: 4730
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: gearman_workers_queued
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/gearman.conf
+ metric: gearman.single_job
+ info: average number of queued jobs over the last 10 minutes
metrics:
- - name: gearman.total_jobs
- description: Total Jobs
- unit: "Jobs"
- chart_type: line
- dimensions:
- - name: Pending
- - name: Running
- - name: gearman job
- description: ""
- labels: []
- metrics:
- - name: gearman.single_job
- description: '{job_name}'
- unit: "Jobs"
- chart_type: stacked
- dimensions:
- - name: Pending
- - name: Idle
- - name: Runnning
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: gearman.total_jobs
+ description: Total Jobs
+ unit: "Jobs"
+ chart_type: line
+ dimensions:
+ - name: Pending
+ - name: Running
+ - name: gearman job
+ description: "Metrics related to Gearman jobs. Each job produces its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: gearman.single_job
+ description: "{job_name}"
+ unit: "Jobs"
+ chart_type: stacked
+ dimensions:
+ - name: Pending
+ - name: Idle
+ - name: Runnning
diff --git a/collectors/python.d.plugin/gearman/metrics.csv b/collectors/python.d.plugin/gearman/metrics.csv
deleted file mode 100644
index 0592e75d6..000000000
--- a/collectors/python.d.plugin/gearman/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-gearman.total_jobs,,"Pending, Running",Jobs,Total Jobs,line,,python.d.plugin,gearman
-gearman.single_job,gearman job,"Pending, Idle, Runnning",Jobs,{job_name},stacked,,python.d.plugin,gearman
diff --git a/collectors/python.d.plugin/go_expvar/metadata.yaml b/collectors/python.d.plugin/go_expvar/metadata.yaml
index 31b85fa1f..92669dd9c 100644
--- a/collectors/python.d.plugin/go_expvar/metadata.yaml
+++ b/collectors/python.d.plugin/go_expvar/metadata.yaml
@@ -1,109 +1,319 @@
-meta:
- plugin_name: python.d.plugin
- module_name: go_expvar
- monitored_instance:
- name: Go applications
- link: ''
- categories:
- - data-collection.apm
- icon_filename: 'go.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Go applications performance for optimal Go language software operations. Monitor runtime statistics, garbage collection, and memory usage to enhance Go application performance.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: go_expvar
+ monitored_instance:
+ name: Go applications
+ link: "https://pkg.go.dev/expvar"
+ categories:
+ - data-collection.apm
+ icon_filename: "go.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - go
+ - expvar
+ - application
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors Go applications that expose their metrics with the use of the `expvar` package from the Go standard library. It produces charts for Go runtime memory statistics and optionally any number of custom charts."
+ method_description: "It connects via http to gather the metrics exposed via the `expvar` package."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Sample `expvar` usage in a Go application"
+ description: |
+ The `expvar` package exposes metrics over HTTP and is very easy to use.
+ Consider this minimal sample below:
+
+ ```go
+ package main
+
+ import (
+ _ "expvar"
+ "net/http"
+ )
+
+ func main() {
+ http.ListenAndServe("127.0.0.1:8080", nil)
+ }
+ ```
+
+ When imported this way, the `expvar` package registers a HTTP handler at `/debug/vars` that
+ exposes Go runtime's memory statistics in JSON format. You can inspect the output by opening
+ the URL in your browser (or by using `wget` or `curl`).
+
+ Sample output:
+
+ ```json
+ {
+ "cmdline": ["./expvar-demo-binary"],
+ "memstats": {"Alloc":630856,"TotalAlloc":630856,"Sys":3346432,"Lookups":27, }
+ }
+ ```
+
+ You can of course expose and monitor your own variables as well.
+ Here is a sample Go application that exposes a few custom variables:
+
+ ```go
+ package main
+
+ import (
+ "expvar"
+ "net/http"
+ "runtime"
+ "time"
+ )
+
+ func main() {
+
+ tick := time.NewTicker(1 * time.Second)
+ num_go := expvar.NewInt("runtime.goroutines")
+ counters := expvar.NewMap("counters")
+ counters.Set("cnt1", new(expvar.Int))
+ counters.Set("cnt2", new(expvar.Float))
+
+ go http.ListenAndServe(":8080", nil)
+
+ for {
+ select {
+ case <- tick.C:
+ num_go.Set(int64(runtime.NumGoroutine()))
+ counters.Add("cnt1", 1)
+ counters.AddFloat("cnt2", 1.452)
+ }
+ }
+ }
+ ```
+
+ Apart from the runtime memory stats, this application publishes two counters and the
+ number of currently running Goroutines and updates these stats every second.
+ configuration:
+ file:
+ name: python.d/go_expvar.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. Each JOB can be used to monitor a different Go application.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: url
+ description: the URL and port of the expvar endpoint. Please include the whole path of the endpoint, as the expvar handler can be installed in a non-standard location.
+ default_value: ""
+ required: true
+ - name: user
+ description: If the URL is password protected, this is the username to use.
+ default_value: ""
+ required: false
+ - name: pass
+ description: If the URL is password protected, this is the password to use.
+ default_value: ""
+ required: false
+ - name: collect_memstats
+ description: Enables charts for Go runtime's memory statistics.
+ default_value: ""
+ required: false
+ - name: extra_charts
+ description: Defines extra data/charts to monitor, please see the example below.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Monitor a Go app1 application
+ description: |
+ The example below sets a configuration for a Go application, called `app1`. Besides the `memstats`, the application also exposes two counters and the number of currently running Goroutines and updates these stats every second.
+
+ The `go_expvar` collector can monitor these as well with the use of the `extra_charts` configuration variable.
+
+ The `extra_charts` variable is a YaML list of Netdata chart definitions.
+ Each chart definition has the following keys:
+
+ ```
+ id: Netdata chart ID
+ options: a key-value mapping of chart options
+ lines: a list of line definitions
+ ```
+
+ **Note: please do not use dots in the chart or line ID field.
+ See [this issue](https://github.com/netdata/netdata/pull/1902#issuecomment-284494195) for explanation.**
+
+ Please see these two links to the official Netdata documentation for more information about the values:
+
+ - [External plugins - charts](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#chart)
+ - [Chart variables](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#global-variables-order-and-chart)
+
+ **Line definitions**
+
+ Each chart can define multiple lines (dimensions).
+ A line definition is a key-value mapping of line options.
+ Each line can have the following options:
+
+ ```
+ # mandatory
+ expvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint
+ expvar_type: value type; supported are "float" or "int"
+ id: the id of this line/dimension in Netdata
+
+ # optional - Netdata defaults are used if these options are not defined
+ name: ''
+ algorithm: absolute
+ multiplier: 1
+ divisor: 100 if expvar_type == float, 1 if expvar_type == int
+ hidden: False
+ ```
+
+ Please see the following link for more information about the options and their default values:
+ [External plugins - dimensions](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#dimension)
+
+ Apart from top-level expvars, this plugin can also parse expvars stored in a multi-level map;
+ All dicts in the resulting JSON document are then flattened to one level.
+ Expvar names are joined together with '.' when flattening.
+
+ Example:
+
+ ```
+ {
+ "counters": {"cnt1": 1042, "cnt2": 1512.9839999999983},
+ "runtime.goroutines": 5
+ }
+ ```
+
+ In the above case, the exported variables will be available under `runtime.goroutines`,
+ `counters.cnt1` and `counters.cnt2` expvar_keys. If the flattening results in a key collision,
+ the first defined key wins and all subsequent keys with the same name are ignored.
+ config: |
+ app1:
+ name : 'app1'
+ url : 'http://127.0.0.1:8080/debug/vars'
+ collect_memstats: true
+ extra_charts:
+ - id: "runtime_goroutines"
+ options:
+ name: num_goroutines
+ title: "runtime: number of goroutines"
+ units: goroutines
+ family: runtime
+ context: expvar.runtime.goroutines
+ chart_type: line
+ lines:
+ - {expvar_key: 'runtime.goroutines', expvar_type: int, id: runtime_goroutines}
+ - id: "foo_counters"
+ options:
+ name: counters
+ title: "some random counters"
+ units: awesomeness
+ family: counters
+ context: expvar.foo.counters
+ chart_type: line
+ lines:
+ - {expvar_key: 'counters.cnt1', expvar_type: int, id: counters_cnt1}
+ - {expvar_key: 'counters.cnt2', expvar_type: float, id: counters_cnt2}
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: expvar.memstats.heap
- description: 'memory: size of heap memory structures'
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: alloc
- - name: inuse
- - name: expvar.memstats.stack
- description: 'memory: size of stack memory structures'
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: inuse
- - name: expvar.memstats.mspan
- description: 'memory: size of mspan memory structures'
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: inuse
- - name: expvar.memstats.mcache
- description: 'memory: size of mcache memory structures'
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: inuse
- - name: expvar.memstats.live_objects
- description: 'memory: number of live objects'
- unit: "objects"
- chart_type: line
- dimensions:
- - name: live
- - name: expvar.memstats.sys
- description: 'memory: size of reserved virtual address space'
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: sys
- - name: expvar.memstats.gc_pauses
- description: 'memory: average duration of GC pauses'
- unit: "ns"
- chart_type: line
- dimensions:
- - name: avg
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: expvar.memstats.heap
+ description: "memory: size of heap memory structures"
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: alloc
+ - name: inuse
+ - name: expvar.memstats.stack
+ description: "memory: size of stack memory structures"
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: expvar.memstats.mspan
+ description: "memory: size of mspan memory structures"
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: expvar.memstats.mcache
+ description: "memory: size of mcache memory structures"
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: inuse
+ - name: expvar.memstats.live_objects
+ description: "memory: number of live objects"
+ unit: "objects"
+ chart_type: line
+ dimensions:
+ - name: live
+ - name: expvar.memstats.sys
+ description: "memory: size of reserved virtual address space"
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: sys
+ - name: expvar.memstats.gc_pauses
+ description: "memory: average duration of GC pauses"
+ unit: "ns"
+ chart_type: line
+ dimensions:
+ - name: avg
diff --git a/collectors/python.d.plugin/go_expvar/metrics.csv b/collectors/python.d.plugin/go_expvar/metrics.csv
deleted file mode 100644
index 5d96ff753..000000000
--- a/collectors/python.d.plugin/go_expvar/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-expvar.memstats.heap,,"alloc, inuse",KiB,memory: size of heap memory structures,line,,python.d.plugin,go_expvar
-expvar.memstats.stack,,inuse,KiB,memory: size of stack memory structures,line,,python.d.plugin,go_expvar
-expvar.memstats.mspan,,inuse,KiB,memory: size of mspan memory structures,line,,python.d.plugin,go_expvar
-expvar.memstats.mcache,,inuse,KiB,memory: size of mcache memory structures,line,,python.d.plugin,go_expvar
-expvar.memstats.live_objects,,live,objects,memory: number of live objects,line,,python.d.plugin,go_expvar
-expvar.memstats.sys,,sys,KiB,memory: size of reserved virtual address space,line,,python.d.plugin,go_expvar
-expvar.memstats.gc_pauses,,avg,ns,memory: average duration of GC pauses,line,,python.d.plugin,go_expvar
diff --git a/collectors/python.d.plugin/haproxy/metadata.yaml b/collectors/python.d.plugin/haproxy/metadata.yaml
index 401313e99..82ab37d26 100644
--- a/collectors/python.d.plugin/haproxy/metadata.yaml
+++ b/collectors/python.d.plugin/haproxy/metadata.yaml
@@ -1,254 +1,322 @@
-meta:
- plugin_name: python.d.plugin
- module_name: haproxy
- monitored_instance:
- name: HAProxy
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'haproxy.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor HAProxy performance for ideal load balancing operations. Monitor session rates, queue lengths, and error rates to maintain balanced network traffic.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: haproxy_backend_server_status
- link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf
- metric: haproxy_hs.down
- info: average number of failed haproxy backend servers over the last 10 seconds
-- name: haproxy_backend_status
- link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf
- metric: haproxy_hb.down
- info: average number of failed haproxy backends over the last 10 seconds
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: haproxy_f.bin
- description: Kilobytes In
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.bout
- description: Kilobytes Out
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.scur
- description: Sessions Active
- unit: "sessions"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.qcur
- description: Session In Queue
- unit: "sessions"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_1xx
- description: HTTP responses with 1xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_2xx
- description: HTTP responses with 2xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_3xx
- description: HTTP responses with 3xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_4xx
- description: HTTP responses with 4xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_5xx
- description: HTTP responses with 5xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_other
- description: HTTP responses with other codes (protocol error)
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_f.hrsp_total
- description: HTTP responses
- unit: "responses"
- chart_type: line
- dimensions:
- - name: a dimension per frontend server
- - name: haproxy_b.bin
- description: Kilobytes In
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.bout
- description: Kilobytes Out
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.scur
- description: Sessions Active
- unit: "sessions"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.qcur
- description: Sessions In Queue
- unit: "sessions"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_1xx
- description: HTTP responses with 1xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_2xx
- description: HTTP responses with 2xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_3xx
- description: HTTP responses with 3xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_4xx
- description: HTTP responses with 4xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_5xx
- description: HTTP responses with 5xx code
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_other
- description: HTTP responses with other codes (protocol error)
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.hrsp_total
- description: HTTP responses (total)
- unit: "responses/s"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.qtime
- description: The average queue time over the 1024 last requests
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.ctime
- description: The average connect time over the 1024 last requests
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.rtime
- description: The average response time over the 1024 last requests
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_b.ttime
- description: The average total session time over the 1024 last requests
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_hs.down
- description: Backend Servers In DOWN State
- unit: "failed servers"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_hs.up
- description: Backend Servers In UP State
- unit: "health servers"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy_hb.down
- description: Is Backend Failed?
- unit: "boolean"
- chart_type: line
- dimensions:
- - name: a dimension per backend server
- - name: haproxy.idle
- description: The Ratio Of Polling Time Vs Total Time
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: idle
+# This collector will not appear in documentation, as the go version is preferred,
+# https://github.com/netdata/go.d.plugin/blob/master/modules/haproxy/README.md
+#
+#
+# meta:
+# plugin_name: python.d.plugin
+# module_name: haproxy
+# monitored_instance:
+# name: HAProxy
+# link: 'https://www.haproxy.org/'
+# categories:
+# - data-collection.web-servers-and-web-proxies
+# icon_filename: 'haproxy.png'
+# related_resources:
+# integrations:
+# list: []
+# info_provided_to_referring_integrations:
+# description: ''
+# keywords:
+# - haproxy
+# - tcp
+# - balancer
+# most_popular: false
+# overview:
+# data_collection:
+# metrics_description: 'This collector monitors HAProxy metrics about frontend servers, backend servers, responses and more.'
+# method_description: 'It connects to the HAProxy instance via URL or UNIX socket.'
+# supported_platforms:
+# include: []
+# exclude: []
+# multi_instance: true
+# additional_permissions:
+# description: ''
+# default_behavior:
+# auto_detection:
+# description: ''
+# limits:
+# description: ''
+# performance_impact:
+# description: ''
+# setup:
+# prerequisites:
+# list:
+# - title: 'HAProxy setup for socket'
+# description: 'Socket must be readable and writable by the netdata user.'
+# - title: 'HAProxy setup for URL'
+# description: 'URL must have `stats uri ` present in the haproxy config, otherwise you will get HTTP 503 in the haproxy logs.'
+# configuration:
+# file:
+# name: python.d/haproxy.conf
+# options:
+# description: |
+# There are 2 sections:
+
+# * Global variables
+# * One or more JOBS that can define multiple different instances to monitor.
+
+# The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+# Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+# Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+# folding:
+# title: "Config options"
+# enabled: true
+# list:
+# - name: update_every
+# description: Sets the default data collection frequency.
+# default_value: 5
+# required: false
+# - name: priority
+# description: Controls the order of charts at the netdata dashboard.
+# default_value: 60000
+# required: false
+# - name: autodetection_retry
+# description: Sets the job re-check interval in seconds.
+# default_value: 0
+# required: false
+# - name: penalty
+# description: Indicates whether to apply penalty to update_every in case of failures.
+# default_value: yes
+# required: false
+# - name: name
+# description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+# default_value: ''
+# required: false
+# - name: user
+# description: Username if stats auth is used.
+# default_value: ''
+# required: false
+# - name: pass
+# description: Password if stats auth is used.
+# default_value: ''
+# required: false
+# - name: url
+# description: URL to the haproxy_stats endpoint. Also make sure the parameters `csv` and `norefresh` are provided.
+# default_value: ''
+# required: false
+# - name: socket
+# description: Unix socket path to the haproxy sock file.
+# default_value: ''
+# required: false
+# examples:
+# folding:
+# enabled: true
+# title: "Config"
+# list:
+# - name: URL method
+# description: Use a URL to specify the endpoint to check for haproxy statistics.
+# config: |
+# via_url:
+# user: 'username' # ONLY IF stats auth is used
+# pass: 'password' # # ONLY IF stats auth is used
+# url: 'http://ip.address:port/url;csv;norefresh'
+# - name: Local socket
+# description: Use a local socket to check for haproxy statistics.
+# config: |
+# via_socket:
+# socket: 'path/to/haproxy/sock'
+# troubleshooting:
+# problems:
+# list: []
+# alerts:
+# - name: haproxy_backend_server_status
+# link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf
+# metric: haproxy_hs.down
+# info: average number of failed haproxy backend servers over the last 10 seconds
+# - name: haproxy_backend_status
+# link: https://github.com/netdata/netdata/blob/master/health/health.d/haproxy.conf
+# metric: haproxy_hb.down
+# info: average number of failed haproxy backends over the last 10 seconds
+# metrics:
+# folding:
+# title: Metrics
+# enabled: false
+# description: ""
+# availability: []
+# scopes:
+# - name: global
+# description: 'These metrics refer to the entire monitored application.'
+# labels: []
+# metrics:
+# - name: haproxy_f.bin
+# description: Kilobytes In
+# unit: "KiB/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.bout
+# description: Kilobytes Out
+# unit: "KiB/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.scur
+# description: Sessions Active
+# unit: "sessions"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.qcur
+# description: Session In Queue
+# unit: "sessions"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_1xx
+# description: HTTP responses with 1xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_2xx
+# description: HTTP responses with 2xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_3xx
+# description: HTTP responses with 3xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_4xx
+# description: HTTP responses with 4xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_5xx
+# description: HTTP responses with 5xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_other
+# description: HTTP responses with other codes (protocol error)
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_f.hrsp_total
+# description: HTTP responses
+# unit: "responses"
+# chart_type: line
+# dimensions:
+# - name: a dimension per frontend server
+# - name: haproxy_b.bin
+# description: Kilobytes In
+# unit: "KiB/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.bout
+# description: Kilobytes Out
+# unit: "KiB/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.scur
+# description: Sessions Active
+# unit: "sessions"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.qcur
+# description: Sessions In Queue
+# unit: "sessions"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_1xx
+# description: HTTP responses with 1xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_2xx
+# description: HTTP responses with 2xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_3xx
+# description: HTTP responses with 3xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_4xx
+# description: HTTP responses with 4xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_5xx
+# description: HTTP responses with 5xx code
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_other
+# description: HTTP responses with other codes (protocol error)
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.hrsp_total
+# description: HTTP responses (total)
+# unit: "responses/s"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.qtime
+# description: The average queue time over the 1024 last requests
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.ctime
+# description: The average connect time over the 1024 last requests
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.rtime
+# description: The average response time over the 1024 last requests
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_b.ttime
+# description: The average total session time over the 1024 last requests
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_hs.down
+# description: Backend Servers In DOWN State
+# unit: "failed servers"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_hs.up
+# description: Backend Servers In UP State
+# unit: "health servers"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy_hb.down
+# description: Is Backend Failed?
+# unit: "boolean"
+# chart_type: line
+# dimensions:
+# - name: a dimension per backend server
+# - name: haproxy.idle
+# description: The Ratio Of Polling Time Vs Total Time
+# unit: "percentage"
+# chart_type: line
+# dimensions:
+# - name: idle
diff --git a/collectors/python.d.plugin/haproxy/metrics.csv b/collectors/python.d.plugin/haproxy/metrics.csv
deleted file mode 100644
index 7c92c5665..000000000
--- a/collectors/python.d.plugin/haproxy/metrics.csv
+++ /dev/null
@@ -1,31 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-haproxy_f.bin,,a dimension per frontend server,KiB/s,Kilobytes In,line,,python.d.plugin,haproxy
-haproxy_f.bout,,a dimension per frontend server,KiB/s,Kilobytes Out,line,,python.d.plugin,haproxy
-haproxy_f.scur,,a dimension per frontend server,sessions,Sessions Active,line,,python.d.plugin,haproxy
-haproxy_f.qcur,,a dimension per frontend server,sessions,Session In Queue,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_1xx,,a dimension per frontend server,responses/s,HTTP responses with 1xx code,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_2xx,,a dimension per frontend server,responses/s,HTTP responses with 2xx code,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_3xx,,a dimension per frontend server,responses/s,HTTP responses with 3xx code,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_4xx,,a dimension per frontend server,responses/s,HTTP responses with 4xx code,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_5xx,,a dimension per frontend server,responses/s,HTTP responses with 5xx code,line,,python.d.plugin,haproxy
-haproxy_f.hrsp_other,,a dimension per frontend server,responses/s,HTTP responses with other codes (protocol error),line,,python.d.plugin,haproxy
-haproxy_f.hrsp_total,,a dimension per frontend server,responses,HTTP responses,line,,python.d.plugin,haproxy
-haproxy_b.bin,,a dimension per backend server,KiB/s,Kilobytes In,line,,python.d.plugin,haproxy
-haproxy_b.bout,,a dimension per backend server,KiB/s,Kilobytes Out,line,,python.d.plugin,haproxy
-haproxy_b.scur,,a dimension per backend server,sessions,Sessions Active,line,,python.d.plugin,haproxy
-haproxy_b.qcur,,a dimension per backend server,sessions,Sessions In Queue,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_1xx,,a dimension per backend server,responses/s,HTTP responses with 1xx code,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_2xx,,a dimension per backend server,responses/s,HTTP responses with 2xx code,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_3xx,,a dimension per backend server,responses/s,HTTP responses with 3xx code,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_4xx,,a dimension per backend server,responses/s,HTTP responses with 4xx code,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_5xx,,a dimension per backend server,responses/s,HTTP responses with 5xx code,line,,python.d.plugin,haproxy
-haproxy_b.hrsp_other,,a dimension per backend server,responses/s,HTTP responses with other codes (protocol error),line,,python.d.plugin,haproxy
-haproxy_b.hrsp_total,,a dimension per backend server,responses/s,HTTP responses (total),line,,python.d.plugin,haproxy
-haproxy_b.qtime,,a dimension per backend server,milliseconds,The average queue time over the 1024 last requests,line,,python.d.plugin,haproxy
-haproxy_b.ctime,,a dimension per backend server,milliseconds,The average connect time over the 1024 last requests,line,,python.d.plugin,haproxy
-haproxy_b.rtime,,a dimension per backend server,milliseconds,The average response time over the 1024 last requests,line,,python.d.plugin,haproxy
-haproxy_b.ttime,,a dimension per backend server,milliseconds,The average total session time over the 1024 last requests,line,,python.d.plugin,haproxy
-haproxy_hs.down,,a dimension per backend server,failed servers,Backend Servers In DOWN State,line,,python.d.plugin,haproxy
-haproxy_hs.up,,a dimension per backend server,health servers,Backend Servers In UP State,line,,python.d.plugin,haproxy
-haproxy_hb.down,,a dimension per backend server,boolean,Is Backend Failed?,line,,python.d.plugin,haproxy
-haproxy.idle,,idle,percentage,The Ratio Of Polling Time Vs Total Time,line,,python.d.plugin,haproxy
diff --git a/collectors/python.d.plugin/hddtemp/metadata.yaml b/collectors/python.d.plugin/hddtemp/metadata.yaml
index 7c78a752b..ee62dc96d 100644
--- a/collectors/python.d.plugin/hddtemp/metadata.yaml
+++ b/collectors/python.d.plugin/hddtemp/metadata.yaml
@@ -1,72 +1,163 @@
-meta:
- plugin_name: python.d.plugin
- module_name: hddtemp
- monitored_instance:
- name: HDD temperature
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: 'hard-drive.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor HDD temperature metrics for maintaining optimal hard drive health. Keep tabs on drive temperatures, read/write speeds, and error rates to ensure hard drive longevity.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: hddtemp
+ monitored_instance:
+ name: HDD temperature
+ link: https://linux.die.net/man/8/hddtemp
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - hardware
+ - hdd temperature
+ - disk temperature
+ - temperature
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors disk temperatures.
+ method_description: |
+ It uses the `hddtemp` daemon to gather the metrics.
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: By default, this collector will attempt to connect to the `hddtemp` daemon on `127.0.0.1:7634`
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Run `hddtemp` in daemon mode
+ description: |
+ You can execute `hddtemp` in TCP/IP daemon mode by using the `-d` argument.
+
+ So running `hddtemp -d` would run the daemon, by default on port 7634.
+ configuration:
+ file:
+ name: "python.d/hddtemp.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+
+ By default this collector will try to autodetect disks (autodetection works only for disk which names start with "sd"). However this can be overridden by setting the option `disks` to an array of desired disks.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: "local"
+ required: false
+ - name: devices
+ description: Array of desired disks to detect, in case their name doesn't start with `sd`.
+ default_value: ""
+ required: false
+ - name: host
+ description: The IP or HOSTNAME to connect to.
+ default_value: "localhost"
+ required: true
+ - name: port
+ description: The port to connect to.
+ default_value: 7634
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list:
+ - name: Basic
+ description: A basic example configuration.
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 7634
+ - name: Custom disk names
+ description: An example defining the disk names to detect.
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 7634
+ devices:
+ - customdisk1
+ - customdisk2
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 7634
+
+ remote_job:
+ name : 'remote'
+ host : 'http://192.0.2.1:2812'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: hddtemp.temperatures
- description: Disk Temperatures
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: a dimension per disk
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: hddtemp.temperatures
+ description: Disk Temperatures
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per disk
diff --git a/collectors/python.d.plugin/hddtemp/metrics.csv b/collectors/python.d.plugin/hddtemp/metrics.csv
deleted file mode 100644
index c3a858db8..000000000
--- a/collectors/python.d.plugin/hddtemp/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-hddtemp.temperatures,,a dimension per disk,Celsius,Disk Temperatures,line,,python.d.plugin,hddtemp
diff --git a/collectors/python.d.plugin/hpssa/metadata.yaml b/collectors/python.d.plugin/hpssa/metadata.yaml
index cc340780d..dc91f05e4 100644
--- a/collectors/python.d.plugin/hpssa/metadata.yaml
+++ b/collectors/python.d.plugin/hpssa/metadata.yaml
@@ -1,99 +1,175 @@
-meta:
- plugin_name: python.d.plugin
- module_name: hpssa
- monitored_instance:
- name: HP Smart Storage Arrays
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'hp.jpeg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine HP Smart Storage Arrays metrics with Netdata for efficient storage management. Improve your storage efficiency with real-time performance insights.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: hpssa
+ monitored_instance:
+ name: HP Smart Storage Arrays
+ link: 'https://buy.hpe.com/us/en/software/server-management-software/server-management-software/smart-array-management-software/hpe-smart-storage-administrator/p/5409020'
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: 'hp.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - storage
+ - hp
+ - hpssa
+ - array
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors HP Smart Storage Arrays metrics about operational statuses and temperatures.'
+ method_description: 'It uses the command line tool `ssacli`. The exact command used is `sudo -n ssacli ctrl all show config detail`'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'If no configuration is provided, the collector will try to execute the `ssacli` binary.'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Allow user netdata to execute `ssacli` as root.'
+ description: |
+ This module uses `ssacli`, which can only be executed by root. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `ssacli` as root without a password.
+
+ - Add to your `/etc/sudoers` file:
+
+ `which ssacli` shows the full path to the binary.
+
+ ```bash
+ netdata ALL=(root) NOPASSWD: /path/to/ssacli
+ ```
+
+ - Reset Netdata's systemd
+ unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux
+ distributions with systemd)
+
+ The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `ssacli` using `sudo`.
+
+ As the `root` user, do the following:
+
+ ```cmd
+ mkdir /etc/systemd/system/netdata.service.d
+ echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf
+ systemctl daemon-reload
+ systemctl restart netdata.service
+ ```
+ configuration:
+ file:
+ name: python.d/hpssa.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: ssacli_path
+ description: Path to the `ssacli` command line utility. Configure this if `ssacli` is not in the $PATH
+ default_value: ''
+ required: false
+ - name: use_sudo
+ description: Whether or not to use `sudo` to execute `ssacli`
+ default_value: 'True'
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Local simple config
+ description: A basic configuration, specyfing the path to `ssacli`
+ folding:
+ enabled: false
+ config: |
+ local:
+ ssacli_path: /usr/sbin/ssacli
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: hpssa.ctrl_status
- description: Status 1 is OK, Status 0 is not OK
- unit: "Status"
- chart_type: line
- dimensions:
- - name: ctrl_{adapter slot}_status
- - name: cache_{adapter slot}_status
- - name: battery_{adapter slot}_status per adapter
- - name: hpssa.ctrl_temperature
- description: Temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: ctrl_{adapter slot}_temperature
- - name: cache_{adapter slot}_temperature per adapter
- - name: hpssa.ld_status
- description: Status 1 is OK, Status 0 is not OK
- unit: "Status"
- chart_type: line
- dimensions:
- - name: a dimension per logical drive
- - name: hpssa.pd_status
- description: Status 1 is OK, Status 0 is not OK
- unit: "Status"
- chart_type: line
- dimensions:
- - name: a dimension per physical drive
- - name: hpssa.pd_temperature
- description: Temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: a dimension per physical drive
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: hpssa.ctrl_status
+ description: Status 1 is OK, Status 0 is not OK
+ unit: "Status"
+ chart_type: line
+ dimensions:
+ - name: ctrl_{adapter slot}_status
+ - name: cache_{adapter slot}_status
+ - name: battery_{adapter slot}_status per adapter
+ - name: hpssa.ctrl_temperature
+ description: Temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: ctrl_{adapter slot}_temperature
+ - name: cache_{adapter slot}_temperature per adapter
+ - name: hpssa.ld_status
+ description: Status 1 is OK, Status 0 is not OK
+ unit: "Status"
+ chart_type: line
+ dimensions:
+ - name: a dimension per logical drive
+ - name: hpssa.pd_status
+ description: Status 1 is OK, Status 0 is not OK
+ unit: "Status"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical drive
+ - name: hpssa.pd_temperature
+ description: Temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical drive
diff --git a/collectors/python.d.plugin/hpssa/metrics.csv b/collectors/python.d.plugin/hpssa/metrics.csv
deleted file mode 100644
index 126ba5daa..000000000
--- a/collectors/python.d.plugin/hpssa/metrics.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-hpssa.ctrl_status,,"ctrl_{adapter slot}_status, cache_{adapter slot}_status, battery_{adapter slot}_status per adapter",Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa
-hpssa.ctrl_temperature,,"ctrl_{adapter slot}_temperature, cache_{adapter slot}_temperature per adapter",Celsius,Temperature,line,,python.d.plugin,hpssa
-hpssa.ld_status,,a dimension per logical drive,Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa
-hpssa.pd_status,,a dimension per physical drive,Status,"Status 1 is OK, Status 0 is not OK",line,,python.d.plugin,hpssa
-hpssa.pd_temperature,,a dimension per physical drive,Celsius,Temperature,line,,python.d.plugin,hpssa
diff --git a/collectors/python.d.plugin/icecast/metadata.yaml b/collectors/python.d.plugin/icecast/metadata.yaml
index 7b71360df..4bcf5e39f 100644
--- a/collectors/python.d.plugin/icecast/metadata.yaml
+++ b/collectors/python.d.plugin/icecast/metadata.yaml
@@ -1,72 +1,127 @@
-meta:
- plugin_name: python.d.plugin
- module_name: icecast
- monitored_instance:
- name: Icecast
- link: ''
- categories:
- - data-collection.media-streaming-servers
- icon_filename: 'icecast.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine Icecast metrics for insights into media streaming server operations. Study listener counts, bitrate, and connection statuses for smooth streaming services.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: icecast
+ monitored_instance:
+ name: Icecast
+ link: 'https://icecast.org/'
+ categories:
+ - data-collection.media-streaming-servers
+ icon_filename: 'icecast.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - icecast
+ - streaming
+ - media
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors Icecast listener counts.'
+ method_description: 'It connects to an icecast URL and uses the `status-json.xsl` endpoint to retrieve statistics.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'Without configuration, the collector attempts to connect to http://localhost:8443/status-json.xsl'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Icecast minimum version'
+ description: 'Needs at least icecast version >= 2.4.0'
+ configuration:
+ file:
+ name: python.d/icecast.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: url
+ description: The URL (and port) to the icecast server. Needs to also include `/status-json.xsl`
+ default_value: 'http://localhost:8443/status-json.xsl'
+ required: false
+ - name: user
+ description: Username to use to connect to `url` if it's password protected.
+ default_value: ''
+ required: false
+ - name: pass
+ description: Password to use to connect to `url` if it's password protected.
+ default_value: ''
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Remote Icecast server
+ description: Configure a remote icecast server
+ folding:
+ enabled: false
+ config: |
+ remote:
+ url: 'http://1.2.3.4:8443/status-json.xsl'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: icecast.listeners
- description: Number Of Listeners
- unit: "listeners"
- chart_type: line
- dimensions:
- - name: a dimension for each active source
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: icecast.listeners
+ description: Number Of Listeners
+ unit: "listeners"
+ chart_type: line
+ dimensions:
+ - name: a dimension for each active source
diff --git a/collectors/python.d.plugin/icecast/metrics.csv b/collectors/python.d.plugin/icecast/metrics.csv
deleted file mode 100644
index e05c0504a..000000000
--- a/collectors/python.d.plugin/icecast/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-icecast.listeners,,a dimension for each active source,listeners,Number Of Listeners,line,,python.d.plugin,icecast
diff --git a/collectors/python.d.plugin/ipfs/metadata.yaml b/collectors/python.d.plugin/ipfs/metadata.yaml
index 51e50e2a0..dbc421c90 100644
--- a/collectors/python.d.plugin/ipfs/metadata.yaml
+++ b/collectors/python.d.plugin/ipfs/metadata.yaml
@@ -1,98 +1,172 @@
-meta:
- plugin_name: python.d.plugin
- module_name: ipfs
- monitored_instance:
- name: IPFS
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'ipfs.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine IPFS metrics for insights into distributed file system operations. Analyze node connectivity, data replication, and retrieval times for efficient distributed file handling.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: ipfs_datastore_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/ipfs.conf
- metric: ipfs.repo_size
- info: IPFS datastore utilization
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: ipfs
+ monitored_instance:
+ name: IPFS
+ link: "https://ipfs.tech/"
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: "ipfs.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors IPFS server metrics about its quality and performance."
+ method_description: "It connects to an http endpoint of the IPFS server to collect the metrics"
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "If the endpoint is accessible by the Agent, netdata will autodetect it"
+ limits:
+ description: |
+ Calls to the following endpoints are disabled due to IPFS bugs:
+
+ /api/v0/stats/repo (https://github.com/ipfs/go-ipfs/issues/3874)
+ /api/v0/pin/ls (https://github.com/ipfs/go-ipfs/issues/7528)
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "python.d/ipfs.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: ""
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: The JOB's name as it will appear at the dashboard (by default is the job_name)
+ default_value: job_name
+ required: false
+ - name: url
+ description: URL to the IPFS API
+ default_value: no
+ required: true
+ - name: repoapi
+ description: Collect repo metrics.
+ default_value: no
+ required: false
+ - name: pinapi
+ description: Set status of IPFS pinned object polling.
+ default_value: no
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic (default out-of-the-box)
+ description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default.
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name: 'local'
+ url: 'http://localhost:5001'
+ repoapi: no
+ pinapi: no
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local'
+ url: 'http://localhost:5001'
+ repoapi: no
+ pinapi: no
+
+ remote_host:
+ name: 'remote'
+ url: 'http://192.0.2.1:5001'
+ repoapi: no
+ pinapi: no
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: ipfs_datastore_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/ipfs.conf
+ metric: ipfs.repo_size
+ info: IPFS datastore utilization
metrics:
- - name: ipfs.bandwidth
- description: IPFS Bandwidth
- unit: "kilobits/s"
- chart_type: line
- dimensions:
- - name: in
- - name: out
- - name: ipfs.peers
- description: IPFS Peers
- unit: "peers"
- chart_type: line
- dimensions:
- - name: peers
- - name: ipfs.repo_size
- description: IPFS Repo Size
- unit: "GiB"
- chart_type: area
- dimensions:
- - name: avail
- - name: size
- - name: ipfs.repo_objects
- description: IPFS Repo Objects
- unit: "objects"
- chart_type: line
- dimensions:
- - name: objects
- - name: pinned
- - name: recursive_pins
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: ipfs.bandwidth
+ description: IPFS Bandwidth
+ unit: "kilobits/s"
+ chart_type: line
+ dimensions:
+ - name: in
+ - name: out
+ - name: ipfs.peers
+ description: IPFS Peers
+ unit: "peers"
+ chart_type: line
+ dimensions:
+ - name: peers
+ - name: ipfs.repo_size
+ description: IPFS Repo Size
+ unit: "GiB"
+ chart_type: area
+ dimensions:
+ - name: avail
+ - name: size
+ - name: ipfs.repo_objects
+ description: IPFS Repo Objects
+ unit: "objects"
+ chart_type: line
+ dimensions:
+ - name: objects
+ - name: pinned
+ - name: recursive_pins
diff --git a/collectors/python.d.plugin/ipfs/metrics.csv b/collectors/python.d.plugin/ipfs/metrics.csv
deleted file mode 100644
index 33dd43c99..000000000
--- a/collectors/python.d.plugin/ipfs/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-ipfs.bandwidth,,"in, out",kilobits/s,IPFS Bandwidth,line,,python.d.plugin,ipfs
-ipfs.peers,,peers,peers,IPFS Peers,line,,python.d.plugin,ipfs
-ipfs.repo_size,,"avail, size",GiB,IPFS Repo Size,area,,python.d.plugin,ipfs
-ipfs.repo_objects,,"objects, pinned, recursive_pins",objects,IPFS Repo Objects,line,,python.d.plugin,ipfs
diff --git a/collectors/python.d.plugin/litespeed/metadata.yaml b/collectors/python.d.plugin/litespeed/metadata.yaml
index 43a267751..400f3a7f6 100644
--- a/collectors/python.d.plugin/litespeed/metadata.yaml
+++ b/collectors/python.d.plugin/litespeed/metadata.yaml
@@ -1,124 +1,168 @@
-meta:
- plugin_name: python.d.plugin
- module_name: litespeed
- monitored_instance:
- name: Litespeed
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'litespeed.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: litespeed
+ monitored_instance:
+ name: Litespeed
+ link: "https://www.litespeedtech.com/products/litespeed-web-server"
+ categories:
+ - data-collection.web-servers-and-web-proxies
+ icon_filename: "litespeed.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - litespeed
+ - web
+ - server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Examine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery."
+ method_description: "The collector uses the statistics under /tmp/lshttpd to gather the metrics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "If no configuration is present, the collector will attempt to read files under /tmp/lshttpd/."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: python.d/litespeed.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: path
+ description: Use a different path than the default, where the lightspeed stats files reside.
+ default_value: "/tmp/lshttpd/"
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Set the path to statistics
+ description: Change the path for the litespeed stats files
+ config: |
+ localhost:
+ name: 'local'
+ path: '/tmp/lshttpd'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: litespeed.net_throughput
- description: Network Throughput HTTP
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: litespeed.net_throughput
- description: Network Throughput HTTPS
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: litespeed.connections
- description: Connections HTTP
- unit: "conns"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: litespeed.connections
- description: Connections HTTPS
- unit: "conns"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: litespeed.requests
- description: Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: litespeed.requests_processing
- description: Requests In Processing
- unit: "requests"
- chart_type: line
- dimensions:
- - name: processing
- - name: litespeed.cache
- description: Public Cache Hits
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hits
- - name: litespeed.cache
- description: Private Cache Hits
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hits
- - name: litespeed.static
- description: Static Hits
- unit: "hits/s"
- chart_type: line
- dimensions:
- - name: hits
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: litespeed.net_throughput
+ description: Network Throughput HTTP
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: litespeed.net_throughput
+ description: Network Throughput HTTPS
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: litespeed.connections
+ description: Connections HTTP
+ unit: "conns"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: litespeed.connections
+ description: Connections HTTPS
+ unit: "conns"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: litespeed.requests
+ description: Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: litespeed.requests_processing
+ description: Requests In Processing
+ unit: "requests"
+ chart_type: line
+ dimensions:
+ - name: processing
+ - name: litespeed.cache
+ description: Public Cache Hits
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hits
+ - name: litespeed.cache
+ description: Private Cache Hits
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hits
+ - name: litespeed.static
+ description: Static Hits
+ unit: "hits/s"
+ chart_type: line
+ dimensions:
+ - name: hits
diff --git a/collectors/python.d.plugin/litespeed/metrics.csv b/collectors/python.d.plugin/litespeed/metrics.csv
deleted file mode 100644
index 56e50e423..000000000
--- a/collectors/python.d.plugin/litespeed/metrics.csv
+++ /dev/null
@@ -1,10 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-litespeed.net_throughput,,"in, out",kilobits/s,Network Throughput HTTP,area,,python.d.plugin,litespeed
-litespeed.net_throughput,,"in, out",kilobits/s,Network Throughput HTTPS,area,,python.d.plugin,litespeed
-litespeed.connections,,"free, used",conns,Connections HTTP,stacked,,python.d.plugin,litespeed
-litespeed.connections,,"free, used",conns,Connections HTTPS,stacked,,python.d.plugin,litespeed
-litespeed.requests,,requests,requests/s,Requests,line,,python.d.plugin,litespeed
-litespeed.requests_processing,,processing,requests,Requests In Processing,line,,python.d.plugin,litespeed
-litespeed.cache,,hits,hits/s,Public Cache Hits,line,,python.d.plugin,litespeed
-litespeed.cache,,hits,hits/s,Private Cache Hits,line,,python.d.plugin,litespeed
-litespeed.static,,hits,hits/s,Static Hits,line,,python.d.plugin,litespeed
diff --git a/collectors/python.d.plugin/megacli/metadata.yaml b/collectors/python.d.plugin/megacli/metadata.yaml
index 75238dc80..f75a8d2ab 100644
--- a/collectors/python.d.plugin/megacli/metadata.yaml
+++ b/collectors/python.d.plugin/megacli/metadata.yaml
@@ -1,120 +1,193 @@
-meta:
- plugin_name: python.d.plugin
- module_name: megacli
- monitored_instance:
- name: MegaCLI
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'hard-drive.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: megacli_adapter_state
- link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
- metric: megacli.adapter_degraded
- info: 'adapter is in the degraded state (0: false, 1: true)'
-- name: megacli_pd_media_errors
- link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
- metric: megacli.pd_media_error
- info: number of physical drive media errors
-- name: megacli_pd_predictive_failures
- link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
- metric: megacli.pd_predictive_failure
- info: number of physical drive predictive failures
-- name: megacli_bbu_relative_charge
- link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
- metric: megacli.bbu_relative_charge
- info: average battery backup unit (BBU) relative state of charge over the last 10 seconds
-- name: megacli_bbu_cycle_count
- link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
- metric: megacli.bbu_cycle_count
- info: average battery backup unit (BBU) charge cycles count over the last 10 seconds
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: megacli
+ monitored_instance:
+ name: MegaCLI
+ link: "https://wikitech.wikimedia.org/wiki/MegaCli"
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: "hard-drive.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - storage
+ - raid-controller
+ - manage-disks
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Examine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics."
+ method_description: |
+ Collects adapter, physical drives and battery stats using megacli command-line tool
+
+ Executed commands:
+
+ sudo -n megacli -LDPDInfo -aAll
+ sudo -n megacli -AdpBbuCmd -a0
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: "The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password."
+ default_behavior:
+ auto_detection:
+ description: "After all the permissions are satisfied, netdata should be to execute commands via the megacli command line utility"
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Grant permissions for netdata, to run megacli as sudoer
+ description: |
+ The module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password.
+
+ Add to your /etc/sudoers file:
+ which megacli shows the full path to the binary.
+
+ ```bash
+ netdata ALL=(root) NOPASSWD: /path/to/megacli
+ ```
+ - title: "Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)"
+ description: |
+ The default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.
+
+ As root user, do the following:
+
+ ```bash
+ mkdir /etc/systemd/system/netdata.service.d
+ echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf
+ systemctl daemon-reload
+ systemctl restart netdata.service
+ ```
+ configuration:
+ file:
+ name: "python.d/megacli.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: do_battery
+ description: default is no. Battery stats (adds additional call to megacli `megacli -AdpBbuCmd -a0`).
+ default_value: no
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration per job
+ config: |
+ job_name:
+ name: myname
+ update_every: 1
+ priority: 60000
+ penalty: yes
+ autodetection_retry: 0
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: megacli_adapter_state
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
+ metric: megacli.adapter_degraded
+ info: "adapter is in the degraded state (0: false, 1: true)"
+ - name: megacli_pd_media_errors
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
+ metric: megacli.pd_media_error
+ info: number of physical drive media errors
+ - name: megacli_pd_predictive_failures
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
+ metric: megacli.pd_predictive_failure
+ info: number of physical drive predictive failures
+ - name: megacli_bbu_relative_charge
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
+ metric: megacli.bbu_relative_charge
+ info: average battery backup unit (BBU) relative state of charge over the last 10 seconds
+ - name: megacli_bbu_cycle_count
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf
+ metric: megacli.bbu_cycle_count
+ info: average battery backup unit (BBU) charge cycles count over the last 10 seconds
metrics:
- - name: megacli.adapter_degraded
- description: Adapter State
- unit: "is degraded"
- chart_type: line
- dimensions:
- - name: a dimension per adapter
- - name: megacli.pd_media_error
- description: Physical Drives Media Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: a dimension per physical drive
- - name: megacli.pd_predictive_failure
- description: Physical Drives Predictive Failures
- unit: "failures/s"
- chart_type: line
- dimensions:
- - name: a dimension per physical drive
- - name: battery
- description: ""
- labels: []
- metrics:
- - name: megacli.bbu_relative_charge
- description: Relative State of Charge
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: adapter {battery id}
- - name: megacli.bbu_cycle_count
- description: Cycle Count
- unit: "cycle count"
- chart_type: line
- dimensions:
- - name: adapter {battery id}
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: megacli.adapter_degraded
+ description: Adapter State
+ unit: "is degraded"
+ chart_type: line
+ dimensions:
+ - name: a dimension per adapter
+ - name: megacli.pd_media_error
+ description: Physical Drives Media Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical drive
+ - name: megacli.pd_predictive_failure
+ description: Physical Drives Predictive Failures
+ unit: "failures/s"
+ chart_type: line
+ dimensions:
+ - name: a dimension per physical drive
+ - name: battery
+ description: "Metrics related to Battery Backup Units, each BBU provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: megacli.bbu_relative_charge
+ description: Relative State of Charge
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: adapter {battery id}
+ - name: megacli.bbu_cycle_count
+ description: Cycle Count
+ unit: "cycle count"
+ chart_type: line
+ dimensions:
+ - name: adapter {battery id}
diff --git a/collectors/python.d.plugin/megacli/metrics.csv b/collectors/python.d.plugin/megacli/metrics.csv
deleted file mode 100644
index 6d7b00bfd..000000000
--- a/collectors/python.d.plugin/megacli/metrics.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-megacli.adapter_degraded,,a dimension per adapter,is degraded,Adapter State,line,,python.d.plugin,megacli
-megacli.pd_media_error,,a dimension per physical drive,errors/s,Physical Drives Media Errors,line,,python.d.plugin,megacli
-megacli.pd_predictive_failure,,a dimension per physical drive,failures/s,Physical Drives Predictive Failures,line,,python.d.plugin,megacli
-megacli.bbu_relative_charge,battery,adapter {battery id},percentage,Relative State of Charge,line,,python.d.plugin,megacli
-megacli.bbu_cycle_count,battery,adapter {battery id},cycle count,Cycle Count,line,,python.d.plugin,megacli
diff --git a/collectors/python.d.plugin/memcached/metadata.yaml b/collectors/python.d.plugin/memcached/metadata.yaml
index 46195a462..38c9f6853 100644
--- a/collectors/python.d.plugin/memcached/metadata.yaml
+++ b/collectors/python.d.plugin/memcached/metadata.yaml
@@ -1,175 +1,247 @@
-meta:
- plugin_name: python.d.plugin
- module_name: memcached
- monitored_instance:
- name: Memcached
- link: ''
- categories:
- - data-collection.database-servers
- icon_filename: 'memcached.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: memcached_cache_memory_usage
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
- metric: memcached.cache
- info: cache memory utilization
-- name: memcached_cache_fill_rate
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
- metric: memcached.cache
- info: average rate the cache fills up (positive), or frees up (negative) space over the last hour
-- name: memcached_out_of_cache_space_time
- link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
- metric: memcached.cache
- info: estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: memcached
+ monitored_instance:
+ name: Memcached
+ link: https://memcached.org/
+ categories:
+ - data-collection.database-servers
+ icon_filename: "memcached.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - memcached
+ - memcache
+ - cache
+ - database
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching."
+ method_description: "It reads server response to stats command ([stats interface](https://github.com/memcached/memcached/wiki/Commands#stats))."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: |
+ If no configuration is given, collector will attempt to connect to memcached instance on `127.0.0.1:11211` address.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: python.d/memcached.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: host
+ description: the host to connect to.
+ default_value: "127.0.0.1"
+ required: false
+ - name: port
+ description: the port to connect to.
+ default_value: "11211"
+ required: false
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 10
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: localhost
+ description: An example configuration for localhost.
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name: 'local'
+ host: 'localhost'
+ port: 11211
+ - name: localipv4
+ description: An example configuration for localipv4.
+ folding:
+ enabled: true
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 11211
+ - name: localipv6
+ description: An example configuration for localipv6.
+ folding:
+ enabled: true
+ config: |
+ localhost:
+ name: 'local'
+ host: '::1'
+ port: 11211
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: memcached_cache_memory_usage
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
+ metric: memcached.cache
+ info: cache memory utilization
+ - name: memcached_cache_fill_rate
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
+ metric: memcached.cache
+ info: average rate the cache fills up (positive), or frees up (negative) space over the last hour
+ - name: memcached_out_of_cache_space_time
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf
+ metric: memcached.cache
+ info: estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour
metrics:
- - name: memcached.cache
- description: Cache Size
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: available
- - name: used
- - name: memcached.net
- description: Network
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: memcached.connections
- description: Connections
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: current
- - name: rejected
- - name: total
- - name: memcached.items
- description: Items
- unit: "items"
- chart_type: line
- dimensions:
- - name: current
- - name: total
- - name: memcached.evicted_reclaimed
- description: Evicted and Reclaimed Items
- unit: "items"
- chart_type: line
- dimensions:
- - name: reclaimed
- - name: evicted
- - name: memcached.get
- description: Get Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hints
- - name: misses
- - name: memcached.get_rate
- description: Get Request Rate
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: rate
- - name: memcached.set_rate
- description: Set Request Rate
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: rate
- - name: memcached.delete
- description: Delete Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: memcached.cas
- description: Check and Set Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: bad value
- - name: memcached.increment
- description: Increment Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: memcached.decrement
- description: Decrement Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: memcached.touch
- description: Touch Requests
- unit: "requests"
- chart_type: stacked
- dimensions:
- - name: hits
- - name: misses
- - name: memcached.touch_rate
- description: Touch Request Rate
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: rate
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: memcached.cache
+ description: Cache Size
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: available
+ - name: used
+ - name: memcached.net
+ description: Network
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: memcached.connections
+ description: Connections
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: rejected
+ - name: total
+ - name: memcached.items
+ description: Items
+ unit: "items"
+ chart_type: line
+ dimensions:
+ - name: current
+ - name: total
+ - name: memcached.evicted_reclaimed
+ description: Evicted and Reclaimed Items
+ unit: "items"
+ chart_type: line
+ dimensions:
+ - name: reclaimed
+ - name: evicted
+ - name: memcached.get
+ description: Get Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hints
+ - name: misses
+ - name: memcached.get_rate
+ description: Get Request Rate
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: rate
+ - name: memcached.set_rate
+ description: Set Request Rate
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: rate
+ - name: memcached.delete
+ description: Delete Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: memcached.cas
+ description: Check and Set Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: bad value
+ - name: memcached.increment
+ description: Increment Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: memcached.decrement
+ description: Decrement Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: memcached.touch
+ description: Touch Requests
+ unit: "requests"
+ chart_type: stacked
+ dimensions:
+ - name: hits
+ - name: misses
+ - name: memcached.touch_rate
+ description: Touch Request Rate
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: rate
diff --git a/collectors/python.d.plugin/memcached/metrics.csv b/collectors/python.d.plugin/memcached/metrics.csv
deleted file mode 100644
index 8016a9d6e..000000000
--- a/collectors/python.d.plugin/memcached/metrics.csv
+++ /dev/null
@@ -1,15 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-memcached.cache,,"available, used",MiB,Cache Size,stacked,,python.d.plugin,memcached
-memcached.net,,"in, out",kilobits/s,Network,area,,python.d.plugin,memcached
-memcached.connections,,"current, rejected, total",connections/s,Connections,line,,python.d.plugin,memcached
-memcached.items,,"current,total",items,Items,line,,python.d.plugin,memcached
-memcached.evicted_reclaimed,,"reclaimed, evicted",items,Evicted and Reclaimed Items,line,,python.d.plugin,memcached
-memcached.get,,"hints, misses",requests,Get Requests,stacked,,python.d.plugin,memcached
-memcached.get_rate,,rate,requests/s,Get Request Rate,line,,python.d.plugin,memcached
-memcached.set_rate,,rate,requests/s,Set Request Rate,line,,python.d.plugin,memcached
-memcached.delete,,"hits, misses",requests,Delete Requests,stacked,,python.d.plugin,memcached
-memcached.cas,,"hits, misses, bad value",requests,Check and Set Requests,stacked,,python.d.plugin,memcached
-memcached.increment,,"hits, misses",requests,Increment Requests,stacked,,python.d.plugin,memcached
-memcached.decrement,,"hits, misses",requests,Decrement Requests,stacked,,python.d.plugin,memcached
-memcached.touch,,"hits, misses",requests,Touch Requests,stacked,,python.d.plugin,memcached
-memcached.touch_rate,,rate,requests/s,Touch Request Rate,line,,python.d.plugin,memcached
diff --git a/collectors/python.d.plugin/monit/metadata.yaml b/collectors/python.d.plugin/monit/metadata.yaml
index bfa3e6212..b51273188 100644
--- a/collectors/python.d.plugin/monit/metadata.yaml
+++ b/collectors/python.d.plugin/monit/metadata.yaml
@@ -1,138 +1,217 @@
-meta:
- plugin_name: python.d.plugin
- module_name: monit
- monitored_instance:
- name: Monit
- link: ''
- categories:
- - data-collection.synthetic-checks
- icon_filename: 'monit.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Monit performance for optimal system monitoring operations. Monitor system status, process health, and error rates to maintain system stability.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: monit
+ monitored_instance:
+ name: Monit
+ link: https://mmonit.com/monit/
+ categories:
+ - data-collection.synthetic-checks
+ icon_filename: "monit.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - monit
+ - mmonit
+ - supervision tool
+ - monitrc
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors Monit targets such as filesystems, directories, files, FIFO pipes and more.
+ method_description: |
+ It gathers data from Monit's XML interface.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: By default, this collector will attempt to connect to Monit at `http://localhost:2812`
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "python.d/monit.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: "local"
+ required: false
+ - name: url
+ description: The URL to fetch Monit's metrics.
+ default_value: http://localhost:2812
+ required: true
+ - name: user
+ description: Username in case the URL is password protected.
+ default_value: ""
+ required: false
+ - name: pass
+ description: Password in case the URL is password protected.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name : 'local'
+ url : 'http://localhost:2812'
+ - name: Basic Authentication
+ description: Example using basic username and password in order to authenticate.
+ config: |
+ localhost:
+ name : 'local'
+ url : 'http://localhost:2812'
+ user: 'foo'
+ pass: 'bar'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ localhost:
+ name: 'local'
+ url: 'http://localhost:2812'
+
+ remote_job:
+ name: 'remote'
+ url: 'http://192.0.2.1:2812'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: monit.filesystems
- description: Filesystems
- unit: "filesystems"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.directories
- description: Directories
- unit: "directories"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.files
- description: Files
- unit: "files"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.fifos
- description: Pipes (fifo)
- unit: "pipes"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.programs
- description: Programs statuses
- unit: "programs"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.services
- description: Processes statuses
- unit: "processes"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.process_uptime
- description: Processes uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.process_threads
- description: Processes threads
- unit: "threads"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.process_childrens
- description: Child processes
- unit: "children"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.hosts
- description: Hosts
- unit: "hosts"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.host_latency
- description: Hosts latency
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per target
- - name: monit.networks
- description: Network interfaces and addresses
- unit: "interfaces"
- chart_type: line
- dimensions:
- - name: a dimension per target
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: monit.filesystems
+ description: Filesystems
+ unit: "filesystems"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.directories
+ description: Directories
+ unit: "directories"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.files
+ description: Files
+ unit: "files"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.fifos
+ description: Pipes (fifo)
+ unit: "pipes"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.programs
+ description: Programs statuses
+ unit: "programs"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.services
+ description: Processes statuses
+ unit: "processes"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.process_uptime
+ description: Processes uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.process_threads
+ description: Processes threads
+ unit: "threads"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.process_childrens
+ description: Child processes
+ unit: "children"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.hosts
+ description: Hosts
+ unit: "hosts"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.host_latency
+ description: Hosts latency
+ unit: "milliseconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
+ - name: monit.networks
+ description: Network interfaces and addresses
+ unit: "interfaces"
+ chart_type: line
+ dimensions:
+ - name: a dimension per target
diff --git a/collectors/python.d.plugin/monit/metrics.csv b/collectors/python.d.plugin/monit/metrics.csv
deleted file mode 100644
index 1981a07e4..000000000
--- a/collectors/python.d.plugin/monit/metrics.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-monit.filesystems,,a dimension per target,filesystems,Filesystems,line,,python.d.plugin,monit
-monit.directories,,a dimension per target,directories,Directories,line,,python.d.plugin,monit
-monit.files,,a dimension per target,files,Files,line,,python.d.plugin,monit
-monit.fifos,,a dimension per target,pipes,Pipes (fifo),line,,python.d.plugin,monit
-monit.programs,,a dimension per target,programs,Programs statuses,line,,python.d.plugin,monit
-monit.services,,a dimension per target,processes,Processes statuses,line,,python.d.plugin,monit
-monit.process_uptime,,a dimension per target,seconds,Processes uptime,line,,python.d.plugin,monit
-monit.process_threads,,a dimension per target,threads,Processes threads,line,,python.d.plugin,monit
-monit.process_childrens,,a dimension per target,children,Child processes,line,,python.d.plugin,monit
-monit.hosts,,a dimension per target,hosts,Hosts,line,,python.d.plugin,monit
-monit.host_latency,,a dimension per target,milliseconds,Hosts latency,line,,python.d.plugin,monit
-monit.networks,,a dimension per target,interfaces,Network interfaces and addresses,line,,python.d.plugin,monit
diff --git a/collectors/python.d.plugin/nsd/metadata.yaml b/collectors/python.d.plugin/nsd/metadata.yaml
index ce4ce35b6..bd0a256f3 100644
--- a/collectors/python.d.plugin/nsd/metadata.yaml
+++ b/collectors/python.d.plugin/nsd/metadata.yaml
@@ -1,124 +1,198 @@
-meta:
- plugin_name: python.d.plugin
- module_name: nsd
- monitored_instance:
- name: NSD
- link: ''
- categories:
- - data-collection.dns-and-dhcp-servers
- icon_filename: 'nsd.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor NSD performance for optimal authoritative DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: nsd
+ monitored_instance:
+ name: Name Server Daemon
+ link: https://nsd.docs.nlnetlabs.nl/en/latest/#
+ categories:
+ - data-collection.dns-and-dhcp-servers
+ icon_filename: "nsd.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - nsd
+ - name server daemon
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors NSD statistics like queries, zones, protocols, query types and more.
+ method_description: |
+ It uses the `nsd-control stats_noreset` command to gather metrics.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: If permissions are satisfied, the collector will be able to run `nsd-control stats_noreset`, thus collecting metrics.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Provide Netdata the permissions to run the command
+ description: |
+ Netdata must have permissions to run the `nsd-control stats_noreset` command.
+
+ You can:
+
+ - Add "netdata" user to "nsd" group:
+ ```
+ usermod -aG nsd netdata
+ ```
+ - Add Netdata to sudoers
+ 1. Edit the sudoers file:
+ ```
+ visudo -f /etc/sudoers.d/netdata
+ ```
+ 2. Add the entry:
+ ```
+ Defaults:netdata !requiretty
+ netdata ALL=(ALL) NOPASSWD: /usr/sbin/nsd-control stats_noreset
+ ```
+
+ > Note that you will need to set the `command` option to `sudo /usr/sbin/nsd-control stats_noreset` if you use this method.
+
+ configuration:
+ file:
+ name: "python.d/nsd.conf"
+ options:
+ description: |
+ This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.
+
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 30
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed
+ running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: command
+ description: The command to run
+ default_value: "nsd-control stats_noreset"
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ folding:
+ enabled: false
+ config: |
+ local:
+ name: 'nsd_local'
+ command: 'nsd-control stats_noreset'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: nsd.queries
- description: queries
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: queries
- - name: nsd.zones
- description: zones
- unit: "zones"
- chart_type: stacked
- dimensions:
- - name: master
- - name: slave
- - name: nsd.protocols
- description: protocol
- unit: "queries/s"
- chart_type: stacked
- dimensions:
- - name: udp
- - name: udp6
- - name: tcp
- - name: tcp6
- - name: nsd.type
- description: query type
- unit: "queries/s"
- chart_type: stacked
- dimensions:
- - name: A
- - name: NS
- - name: CNAME
- - name: SOA
- - name: PTR
- - name: HINFO
- - name: MX
- - name: NAPTR
- - name: TXT
- - name: AAAA
- - name: SRV
- - name: ANY
- - name: nsd.transfer
- description: transfer
- unit: "queries/s"
- chart_type: stacked
- dimensions:
- - name: NOTIFY
- - name: AXFR
- - name: nsd.rcode
- description: return code
- unit: "queries/s"
- chart_type: stacked
- dimensions:
- - name: NOERROR
- - name: FORMERR
- - name: SERVFAIL
- - name: NXDOMAIN
- - name: NOTIMP
- - name: REFUSED
- - name: YXDOMAIN
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: nsd.queries
+ description: queries
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: queries
+ - name: nsd.zones
+ description: zones
+ unit: "zones"
+ chart_type: stacked
+ dimensions:
+ - name: master
+ - name: slave
+ - name: nsd.protocols
+ description: protocol
+ unit: "queries/s"
+ chart_type: stacked
+ dimensions:
+ - name: udp
+ - name: udp6
+ - name: tcp
+ - name: tcp6
+ - name: nsd.type
+ description: query type
+ unit: "queries/s"
+ chart_type: stacked
+ dimensions:
+ - name: A
+ - name: NS
+ - name: CNAME
+ - name: SOA
+ - name: PTR
+ - name: HINFO
+ - name: MX
+ - name: NAPTR
+ - name: TXT
+ - name: AAAA
+ - name: SRV
+ - name: ANY
+ - name: nsd.transfer
+ description: transfer
+ unit: "queries/s"
+ chart_type: stacked
+ dimensions:
+ - name: NOTIFY
+ - name: AXFR
+ - name: nsd.rcode
+ description: return code
+ unit: "queries/s"
+ chart_type: stacked
+ dimensions:
+ - name: NOERROR
+ - name: FORMERR
+ - name: SERVFAIL
+ - name: NXDOMAIN
+ - name: NOTIMP
+ - name: REFUSED
+ - name: YXDOMAIN
diff --git a/collectors/python.d.plugin/nsd/metrics.csv b/collectors/python.d.plugin/nsd/metrics.csv
deleted file mode 100644
index b82812bf6..000000000
--- a/collectors/python.d.plugin/nsd/metrics.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-nsd.queries,,queries,queries/s,queries,line,,python.d.plugin,nsd
-nsd.zones,,"master, slave",zones,zones,stacked,,python.d.plugin,nsd
-nsd.protocols,,"udp, udp6, tcp, tcp6",queries/s,protocol,stacked,,python.d.plugin,nsd
-nsd.type,,"A, NS, CNAME, SOA, PTR, HINFO, MX, NAPTR, TXT, AAAA, SRV, ANY",queries/s,query type,stacked,,python.d.plugin,nsd
-nsd.transfer,,"NOTIFY, AXFR",queries/s,transfer,stacked,,python.d.plugin,nsd
-nsd.rcode,,"NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP, REFUSED, YXDOMAIN",queries/s,return code,stacked,,python.d.plugin,nsd
diff --git a/collectors/python.d.plugin/nvidia_smi/metadata.yaml b/collectors/python.d.plugin/nvidia_smi/metadata.yaml
index fc0c90d5f..9bf1e6ca7 100644
--- a/collectors/python.d.plugin/nvidia_smi/metadata.yaml
+++ b/collectors/python.d.plugin/nvidia_smi/metadata.yaml
@@ -1,163 +1,166 @@
-meta:
- plugin_name: python.d.plugin
- module_name: nvidia_smi
- monitored_instance:
- name: python.d nvidia_smi
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: GPU
- description: ""
- labels: []
- metrics:
- - name: nvidia_smi.pci_bandwidth
- description: PCI Express Bandwidth Utilization
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: rx
- - name: tx
- - name: nvidia_smi.pci_bandwidth_percent
- description: PCI Express Bandwidth Percent
- unit: "percentage"
- chart_type: area
- dimensions:
- - name: rx_percent
- - name: tx_percent
- - name: nvidia_smi.fan_speed
- description: Fan Speed
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: speed
- - name: nvidia_smi.gpu_utilization
- description: GPU Utilization
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: utilization
- - name: nvidia_smi.mem_utilization
- description: Memory Bandwidth Utilization
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: utilization
- - name: nvidia_smi.encoder_utilization
- description: Encoder/Decoder Utilization
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: encoder
- - name: decoder
- - name: nvidia_smi.memory_allocated
- description: Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: nvidia_smi.bar1_memory_usage
- description: Bar1 Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: nvidia_smi.temperature
- description: Temperature
- unit: "celsius"
- chart_type: line
- dimensions:
- - name: temp
- - name: nvidia_smi.clocks
- description: Clock Frequencies
- unit: "MHz"
- chart_type: line
- dimensions:
- - name: graphics
- - name: video
- - name: sm
- - name: mem
- - name: nvidia_smi.power
- description: Power Utilization
- unit: "Watts"
- chart_type: line
- dimensions:
- - name: power
- - name: nvidia_smi.power_state
- description: Power State
- unit: "state"
- chart_type: line
- dimensions:
- - name: a dimension per {power_state}
- - name: nvidia_smi.processes_mem
- description: Memory Used by Each Process
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per process
- - name: nvidia_smi.user_mem
- description: Memory Used by Each User
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per user
- - name: nvidia_smi.user_num
- description: Number of User on GPU
- unit: "num"
- chart_type: line
- dimensions:
- - name: users
+# This collector will not appear in documentation, as the go version is preferred,
+# https://github.com/netdata/go.d.plugin/blob/master/modules/nvidia_smi/README.md
+#
+# meta:
+# plugin_name: python.d.plugin
+# module_name: nvidia_smi
+# monitored_instance:
+# name: python.d nvidia_smi
+# link: ''
+# categories: []
+# icon_filename: ''
+# related_resources:
+# integrations:
+# list: []
+# info_provided_to_referring_integrations:
+# description: ''
+# keywords: []
+# most_popular: false
+# overview:
+# data_collection:
+# metrics_description: ''
+# method_description: ''
+# supported_platforms:
+# include: []
+# exclude: []
+# multi_instance: true
+# additional_permissions:
+# description: ''
+# default_behavior:
+# auto_detection:
+# description: ''
+# limits:
+# description: ''
+# performance_impact:
+# description: ''
+# setup:
+# prerequisites:
+# list: []
+# configuration:
+# file:
+# name: ''
+# description: ''
+# options:
+# description: ''
+# folding:
+# title: ''
+# enabled: true
+# list: []
+# examples:
+# folding:
+# enabled: true
+# title: ''
+# list: []
+# troubleshooting:
+# problems:
+# list: []
+# alerts: []
+# metrics:
+# folding:
+# title: Metrics
+# enabled: false
+# description: ""
+# availability: []
+# scopes:
+# - name: GPU
+# description: ""
+# labels: []
+# metrics:
+# - name: nvidia_smi.pci_bandwidth
+# description: PCI Express Bandwidth Utilization
+# unit: "KiB/s"
+# chart_type: area
+# dimensions:
+# - name: rx
+# - name: tx
+# - name: nvidia_smi.pci_bandwidth_percent
+# description: PCI Express Bandwidth Percent
+# unit: "percentage"
+# chart_type: area
+# dimensions:
+# - name: rx_percent
+# - name: tx_percent
+# - name: nvidia_smi.fan_speed
+# description: Fan Speed
+# unit: "percentage"
+# chart_type: line
+# dimensions:
+# - name: speed
+# - name: nvidia_smi.gpu_utilization
+# description: GPU Utilization
+# unit: "percentage"
+# chart_type: line
+# dimensions:
+# - name: utilization
+# - name: nvidia_smi.mem_utilization
+# description: Memory Bandwidth Utilization
+# unit: "percentage"
+# chart_type: line
+# dimensions:
+# - name: utilization
+# - name: nvidia_smi.encoder_utilization
+# description: Encoder/Decoder Utilization
+# unit: "percentage"
+# chart_type: line
+# dimensions:
+# - name: encoder
+# - name: decoder
+# - name: nvidia_smi.memory_allocated
+# description: Memory Usage
+# unit: "MiB"
+# chart_type: stacked
+# dimensions:
+# - name: free
+# - name: used
+# - name: nvidia_smi.bar1_memory_usage
+# description: Bar1 Memory Usage
+# unit: "MiB"
+# chart_type: stacked
+# dimensions:
+# - name: free
+# - name: used
+# - name: nvidia_smi.temperature
+# description: Temperature
+# unit: "celsius"
+# chart_type: line
+# dimensions:
+# - name: temp
+# - name: nvidia_smi.clocks
+# description: Clock Frequencies
+# unit: "MHz"
+# chart_type: line
+# dimensions:
+# - name: graphics
+# - name: video
+# - name: sm
+# - name: mem
+# - name: nvidia_smi.power
+# description: Power Utilization
+# unit: "Watts"
+# chart_type: line
+# dimensions:
+# - name: power
+# - name: nvidia_smi.power_state
+# description: Power State
+# unit: "state"
+# chart_type: line
+# dimensions:
+# - name: a dimension per {power_state}
+# - name: nvidia_smi.processes_mem
+# description: Memory Used by Each Process
+# unit: "MiB"
+# chart_type: stacked
+# dimensions:
+# - name: a dimension per process
+# - name: nvidia_smi.user_mem
+# description: Memory Used by Each User
+# unit: "MiB"
+# chart_type: stacked
+# dimensions:
+# - name: a dimension per user
+# - name: nvidia_smi.user_num
+# description: Number of User on GPU
+# unit: "num"
+# chart_type: line
+# dimensions:
+# - name: users
diff --git a/collectors/python.d.plugin/nvidia_smi/metrics.csv b/collectors/python.d.plugin/nvidia_smi/metrics.csv
deleted file mode 100644
index 683ea5650..000000000
--- a/collectors/python.d.plugin/nvidia_smi/metrics.csv
+++ /dev/null
@@ -1,16 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-nvidia_smi.pci_bandwidth,GPU,"rx, tx",KiB/s,PCI Express Bandwidth Utilization,area,,python.d.plugin,nvidia_smi
-nvidia_smi.pci_bandwidth_percent,GPU,"rx_percent, tx_percent",percentage,PCI Express Bandwidth Percent,area,,python.d.plugin,nvidia_smi
-nvidia_smi.fan_speed,GPU,speed,percentage,Fan Speed,line,,python.d.plugin,nvidia_smi
-nvidia_smi.gpu_utilization,GPU,utilization,percentage,GPU Utilization,line,,python.d.plugin,nvidia_smi
-nvidia_smi.mem_utilization,GPU,utilization,percentage,Memory Bandwidth Utilization,line,,python.d.plugin,nvidia_smi
-nvidia_smi.encoder_utilization,GPU,"encoder, decoder",percentage,Encoder/Decoder Utilization,line,,python.d.plugin,nvidia_smi
-nvidia_smi.memory_allocated,GPU,"free, used",MiB,Memory Usage,stacked,,python.d.plugin,nvidia_smi
-nvidia_smi.bar1_memory_usage,GPU,"free, used",MiB,Bar1 Memory Usage,stacked,,python.d.plugin,nvidia_smi
-nvidia_smi.temperature,GPU,temp,celsius,Temperature,line,,python.d.plugin,nvidia_smi
-nvidia_smi.clocks,GPU,"graphics, video, sm, mem",MHz,Clock Frequencies,line,,python.d.plugin,nvidia_smi
-nvidia_smi.power,GPU,power,Watts,Power Utilization,line,,python.d.plugin,nvidia_smi
-nvidia_smi.power_state,GPU,a dimension per {power_state},state,Power State,line,,python.d.plugin,nvidia_smi
-nvidia_smi.processes_mem,GPU,a dimension per process,MiB,Memory Used by Each Process,stacked,,python.d.plugin,nvidia_smi
-nvidia_smi.user_mem,GPU,a dimension per user,MiB,Memory Used by Each User,stacked,,python.d.plugin,nvidia_smi
-nvidia_smi.user_num,GPU,users,num,Number of User on GPU,line,,python.d.plugin,nvidia_smi
diff --git a/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py b/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py
index 271c99638..556a61435 100644
--- a/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py
+++ b/collectors/python.d.plugin/nvidia_smi/nvidia_smi.chart.py
@@ -62,20 +62,22 @@ POWER_STATES = ['P' + str(i) for i in range(0, 16)]
# PCI Transfer data rate in gigabits per second (Gb/s) per generation
PCI_SPEED = {
- "1": 2.5,
- "2": 5,
- "3": 8,
- "4": 16,
- "5": 32
+ "1": 2.5,
+ "2": 5,
+ "3": 8,
+ "4": 16,
+ "5": 32
}
# PCI encoding per generation
PCI_ENCODING = {
- "1": 2/10,
- "2": 2/10,
- "3": 2/130,
- "4": 2/130,
- "5": 2/130
+ "1": 2 / 10,
+ "2": 2 / 10,
+ "3": 2 / 130,
+ "4": 2 / 130,
+ "5": 2 / 130
}
+
+
def gpu_charts(gpu):
fam = gpu.full_name()
@@ -88,7 +90,8 @@ def gpu_charts(gpu):
]
},
PCI_BANDWIDTH_PERCENT: {
- 'options': [None, 'PCI Express Bandwidth Percent', 'percentage', fam, 'nvidia_smi.pci_bandwidth_percent', 'area'],
+ 'options': [None, 'PCI Express Bandwidth Percent', 'percentage', fam, 'nvidia_smi.pci_bandwidth_percent',
+ 'area'],
'lines': [
['rx_util_percent', 'rx_percent'],
['tx_util_percent', 'tx_percent'],
@@ -358,7 +361,8 @@ class GPU:
@handle_attr_error
def pci_link_width(self):
- return self.root.find('pci').find('pci_gpu_link_info').find('link_widths').find('max_link_width').text.split('x')[0]
+ info = self.root.find('pci').find('pci_gpu_link_info')
+ return info.find('link_widths').find('max_link_width').text.split('x')[0]
def pci_bw_max(self):
link_gen = self.pci_link_gen()
@@ -368,7 +372,7 @@ class GPU:
# Maximum PCIe Bandwidth = SPEED * WIDTH * (1 - ENCODING) - 1Gb/s.
# see details https://enterprise-support.nvidia.com/s/article/understanding-pcie-configuration-for-maximum-performance
# return max bandwidth in kilobytes per second (kB/s)
- return (PCI_SPEED[link_gen] * link_width * (1- PCI_ENCODING[link_gen]) - 1) * 1000 * 1000 / 8
+ return (PCI_SPEED[link_gen] * link_width * (1 - PCI_ENCODING[link_gen]) - 1) * 1000 * 1000 / 8
@handle_attr_error
def rx_util(self):
@@ -434,14 +438,19 @@ class GPU:
def mem_clock(self):
return self.root.find('clocks').find('mem_clock').text.split()[0]
+ @handle_attr_error
+ def power_readings(self):
+ elem = self.root.find('power_readings')
+ return elem if elem else self.root.find('gpu_power_readings')
+
@handle_attr_error
def power_state(self):
- return str(self.root.find('power_readings').find('power_state').text.split()[0])
+ return str(self.power_readings().find('power_state').text.split()[0])
@handle_value_error
@handle_attr_error
def power_draw(self):
- return float(self.root.find('power_readings').find('power_draw').text.split()[0]) * 100
+ return float(self.power_readings().find('power_draw').text.split()[0]) * 100
@handle_attr_error
def processes(self):
@@ -492,7 +501,6 @@ class GPU:
data['rx_util_percent'] = str(int(int(self.rx_util()) * 100 / self.pci_bw_max()))
data['tx_util_percent'] = str(int(int(self.tx_util()) * 100 / self.pci_bw_max()))
-
for v in POWER_STATES:
data['power_state_' + v.lower()] = 0
p_state = self.power_state()
diff --git a/collectors/python.d.plugin/openldap/metadata.yaml b/collectors/python.d.plugin/openldap/metadata.yaml
index 413aaf1d0..3826b22c7 100644
--- a/collectors/python.d.plugin/openldap/metadata.yaml
+++ b/collectors/python.d.plugin/openldap/metadata.yaml
@@ -1,116 +1,225 @@
-meta:
- plugin_name: python.d.plugin
- module_name: openldap
- monitored_instance:
- name: OpenLDAP
- link: ''
- categories:
- - data-collection.authentication-and-authorization
- icon_filename: 'statsd.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine OpenLDAP metrics for insights into directory service operations. Analyze query rates, response times, and error rates for efficient directory services.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: openldap
+ monitored_instance:
+ name: OpenLDAP
+ link: "https://www.openldap.org/"
+ categories:
+ - data-collection.authentication-and-authorization
+ icon_filename: "statsd.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - openldap
+ - RBAC
+ - Directory access
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors OpenLDAP metrics about connections, operations, referrals and more."
+ method_description: |
+ Statistics are taken from the monitoring interface of a openLDAP (slapd) server
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: |
+ This collector doesn't work until all the prerequisites are checked.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Configure the openLDAP server to expose metrics to monitor it.
+ description: |
+ Follow instructions from https://www.openldap.org/doc/admin24/monitoringslapd.html to activate monitoring interface.
+ - title: Install python-ldap module
+ description: |
+ Install python ldap module
+
+ 1. From pip package manager
+
+ ```bash
+ pip install ldap
+ ```
+
+ 2. With apt package manager (in most deb based distros)
+
+
+ ```bash
+ apt-get install python-ldap
+ ```
+
+
+ 3. With yum package manager (in most rpm based distros)
+
+
+ ```bash
+ yum install python-ldap
+ ```
+ - title: Insert credentials for Netdata to access openLDAP server
+ description: |
+ Use the `ldappasswd` utility to set a password for the username you will use.
+ configuration:
+ file:
+ name: "python.d/openldap.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: username
+ description: The bind user with right to access monitor statistics
+ default_value: ""
+ required: true
+ - name: password
+ description: The password for the binded user
+ default_value: ""
+ required: true
+ - name: server
+ description: The listening address of the LDAP server. In case of TLS, use the hostname which the certificate is published for.
+ default_value: ""
+ required: true
+ - name: port
+ description: The listening port of the LDAP server. Change to 636 port in case of TLS connection.
+ default_value: "389"
+ required: true
+ - name: use_tls
+ description: Make True if a TLS connection is used over ldaps://
+ default_value: False
+ required: false
+ - name: use_start_tls
+ description: Make True if a TLS connection is used over ldap://
+ default_value: False
+ required: false
+ - name: cert_check
+ description: False if you want to ignore certificate check
+ default_value: "True"
+ required: true
+ - name: timeout
+ description: Seconds to timeout if no connection exist
+ default_value: ""
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic example configuration.
+ folding:
+ enabled: false
+ config: |
+ username: "cn=admin"
+ password: "pass"
+ server: "localhost"
+ port: "389"
+ check_cert: True
+ timeout: 1
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: openldap.total_connections
- description: Total Connections
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: connections
- - name: openldap.traffic_stats
- description: Traffic
- unit: "KiB/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: openldap.operations_status
- description: Operations Status
- unit: "ops/s"
- chart_type: line
- dimensions:
- - name: completed
- - name: initiated
- - name: openldap.referrals
- description: Referrals
- unit: "referrals/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: openldap.entries
- description: Entries
- unit: "entries/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: openldap.ldap_operations
- description: Operations
- unit: "ops/s"
- chart_type: line
- dimensions:
- - name: bind
- - name: search
- - name: unbind
- - name: add
- - name: delete
- - name: modify
- - name: compare
- - name: openldap.waiters
- description: Waiters
- unit: "waiters/s"
- chart_type: line
- dimensions:
- - name: write
- - name: read
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: openldap.total_connections
+ description: Total Connections
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: openldap.traffic_stats
+ description: Traffic
+ unit: "KiB/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: openldap.operations_status
+ description: Operations Status
+ unit: "ops/s"
+ chart_type: line
+ dimensions:
+ - name: completed
+ - name: initiated
+ - name: openldap.referrals
+ description: Referrals
+ unit: "referrals/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: openldap.entries
+ description: Entries
+ unit: "entries/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: openldap.ldap_operations
+ description: Operations
+ unit: "ops/s"
+ chart_type: line
+ dimensions:
+ - name: bind
+ - name: search
+ - name: unbind
+ - name: add
+ - name: delete
+ - name: modify
+ - name: compare
+ - name: openldap.waiters
+ description: Waiters
+ unit: "waiters/s"
+ chart_type: line
+ dimensions:
+ - name: write
+ - name: read
diff --git a/collectors/python.d.plugin/openldap/metrics.csv b/collectors/python.d.plugin/openldap/metrics.csv
deleted file mode 100644
index 0386b8896..000000000
--- a/collectors/python.d.plugin/openldap/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-openldap.total_connections,,connections,connections/s,Total Connections,line,,python.d.plugin,openldap
-openldap.traffic_stats,,sent,KiB/s,Traffic,line,,python.d.plugin,openldap
-openldap.operations_status,,"completed, initiated",ops/s,Operations Status,line,,python.d.plugin,openldap
-openldap.referrals,,sent,referrals/s,Referrals,line,,python.d.plugin,openldap
-openldap.entries,,sent,entries/s,Entries,line,,python.d.plugin,openldap
-openldap.ldap_operations,,"bind, search, unbind, add, delete, modify, compare",ops/s,Operations,line,,python.d.plugin,openldap
-openldap.waiters,,"write, read",waiters/s,Waiters,line,,python.d.plugin,openldap
diff --git a/collectors/python.d.plugin/oracledb/metadata.yaml b/collectors/python.d.plugin/oracledb/metadata.yaml
index 7c530aa57..f2ab8312b 100644
--- a/collectors/python.d.plugin/oracledb/metadata.yaml
+++ b/collectors/python.d.plugin/oracledb/metadata.yaml
@@ -1,216 +1,309 @@
-meta:
- plugin_name: python.d.plugin
- module_name: oracledb
- monitored_instance:
- name: OracleDB
- link: ''
- categories:
- - data-collection.database-servers
- icon_filename: 'oracle.jpeg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor OracleDB performance for efficient database operations and resource management. Netdata provides real-time insights and alerts for optimal database management.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: oracledb
+ monitored_instance:
+ name: Oracle DB
+ link: "https://docs.oracle.com/en/database/oracle/oracle-database/"
+ categories:
+ - data-collection.database-servers
+ icon_filename: "oracle.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - database
+ - oracle
+ - data warehouse
+ - SQL
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors OracleDB database metrics about sessions, tables, memory and more."
+ method_description: "It collects the metrics via the supported database client library"
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: |
+ In order for this collector to work, it needs a read-only user `netdata` in the RDBMS.
+ default_behavior:
+ auto_detection:
+ description: "When the requirements are met, databases on the local host on port 1521 will be auto-detected"
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Install the python-oracledb package
+ description: |
+ You can follow the official guide below to install the required package:
+
+ Source: https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html
+ - title: Create a read only user for netdata
+ description: |
+ Follow the official instructions for your oracle RDBMS to create a read-only user for netdata. The operation may follow this approach
+
+ Connect to your Oracle database with an administrative user and execute:
+
+ ```bash
+ CREATE USER netdata IDENTIFIED BY ;
+
+ GRANT CONNECT TO netdata;
+ GRANT SELECT_CATALOG_ROLE TO netdata;
+ ```
+ - title: Edit the configuration
+ description: |
+ Edit the configuration troubleshooting:
+
+ 1. Provide a valid user for the netdata collector to access the database
+ 2. Specify the network target this database is listening.
+ configuration:
+ file:
+ name: "python.d/oracledb.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: user
+ description: The username for the user account.
+ default_value: no
+ required: true
+ - name: password
+ description: The password for the user account.
+ default_value: no
+ required: true
+ - name: server
+ description: The IP address or hostname (and port) of the Oracle Database Server.
+ default_value: no
+ required: true
+ - name: service
+ description: The Oracle Database service name. To view the services available on your server run this query, `select SERVICE_NAME from gv$session where sid in (select sid from V$MYSTAT)`.
+ default_value: no
+ required: true
+ - name: protocol
+ description: one of the strings "tcp" or "tcps" indicating whether to use unencrypted network traffic or encrypted network traffic
+ default_value: no
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration, two jobs described for two databases.
+ config: |
+ local:
+ user: 'netdata'
+ password: 'secret'
+ server: 'localhost:1521'
+ service: 'XE'
+ protocol: 'tcps'
+
+ remote:
+ user: 'netdata'
+ password: 'secret'
+ server: '10.0.0.1:1521'
+ service: 'XE'
+ protocol: 'tcps'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: oracledb.session_count
- description: Session Count
- unit: "sessions"
- chart_type: line
- dimensions:
- - name: total
- - name: active
- - name: oracledb.session_limit_usage
- description: Session Limit Usage
- unit: "%"
- chart_type: area
- dimensions:
- - name: usage
- - name: oracledb.logons
- description: Logons
- unit: "events/s"
- chart_type: area
- dimensions:
- - name: logons
- - name: oracledb.physical_disk_read_writes
- description: Physical Disk Reads/Writes
- unit: "events/s"
- chart_type: area
- dimensions:
- - name: reads
- - name: writes
- - name: oracledb.sorts_on_disks
- description: Sorts On Disk
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: sorts
- - name: oracledb.full_table_scans
- description: Full Table Scans
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: full table scans
- - name: oracledb.database_wait_time_ratio
- description: Database Wait Time Ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: wait time ratio
- - name: oracledb.shared_pool_free_memory
- description: Shared Pool Free Memory
- unit: "%"
- chart_type: line
- dimensions:
- - name: free memory
- - name: oracledb.in_memory_sorts_ratio
- description: In-Memory Sorts Ratio
- unit: "%"
- chart_type: line
- dimensions:
- - name: in-memory sorts
- - name: oracledb.sql_service_response_time
- description: SQL Service Response Time
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: time
- - name: oracledb.user_rollbacks
- description: User Rollbacks
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: rollbacks
- - name: oracledb.enqueue_timeouts
- description: Enqueue Timeouts
- unit: "events/s"
- chart_type: line
- dimensions:
- - name: enqueue timeouts
- - name: oracledb.cache_hit_ration
- description: Cache Hit Ratio
- unit: "%"
- chart_type: stacked
- dimensions:
- - name: buffer
- - name: cursor
- - name: library
- - name: row
- - name: oracledb.global_cache_blocks
- description: Global Cache Blocks Events
- unit: "events/s"
- chart_type: area
- dimensions:
- - name: corrupted
- - name: lost
- - name: oracledb.activity
- description: Activities
- unit: "events/s"
- chart_type: stacked
- dimensions:
- - name: parse count
- - name: execute count
- - name: user commits
- - name: user rollbacks
- - name: oracledb.wait_time
- description: Wait Time
- unit: "ms"
- chart_type: stacked
- dimensions:
- - name: application
- - name: configuration
- - name: administrative
- - name: concurrency
- - name: commit
- - name: network
- - name: user I/O
- - name: system I/O
- - name: scheduler
- - name: other
- - name: oracledb.tablespace_size
- description: Size
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
- - name: oracledb.tablespace_usage
- description: Usage
- unit: "KiB"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
- - name: oracledb.tablespace_usage_in_percent
- description: Usage
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
- - name: oracledb.allocated_size
- description: Size
- unit: "B"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
- - name: oracledb.allocated_usage
- description: Usage
- unit: "B"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
- - name: oracledb.allocated_usage_in_percent
- description: Usage
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per active tablespace
+ folding:
+ title: Metrics
+ enabled: false
+ description: "These metrics refer to the entire monitored application."
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: oracledb.session_count
+ description: Session Count
+ unit: "sessions"
+ chart_type: line
+ dimensions:
+ - name: total
+ - name: active
+ - name: oracledb.session_limit_usage
+ description: Session Limit Usage
+ unit: "%"
+ chart_type: area
+ dimensions:
+ - name: usage
+ - name: oracledb.logons
+ description: Logons
+ unit: "events/s"
+ chart_type: area
+ dimensions:
+ - name: logons
+ - name: oracledb.physical_disk_read_writes
+ description: Physical Disk Reads/Writes
+ unit: "events/s"
+ chart_type: area
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: oracledb.sorts_on_disks
+ description: Sorts On Disk
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: sorts
+ - name: oracledb.full_table_scans
+ description: Full Table Scans
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: full table scans
+ - name: oracledb.database_wait_time_ratio
+ description: Database Wait Time Ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: wait time ratio
+ - name: oracledb.shared_pool_free_memory
+ description: Shared Pool Free Memory
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: free memory
+ - name: oracledb.in_memory_sorts_ratio
+ description: In-Memory Sorts Ratio
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: in-memory sorts
+ - name: oracledb.sql_service_response_time
+ description: SQL Service Response Time
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: time
+ - name: oracledb.user_rollbacks
+ description: User Rollbacks
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: rollbacks
+ - name: oracledb.enqueue_timeouts
+ description: Enqueue Timeouts
+ unit: "events/s"
+ chart_type: line
+ dimensions:
+ - name: enqueue timeouts
+ - name: oracledb.cache_hit_ration
+ description: Cache Hit Ratio
+ unit: "%"
+ chart_type: stacked
+ dimensions:
+ - name: buffer
+ - name: cursor
+ - name: library
+ - name: row
+ - name: oracledb.global_cache_blocks
+ description: Global Cache Blocks Events
+ unit: "events/s"
+ chart_type: area
+ dimensions:
+ - name: corrupted
+ - name: lost
+ - name: oracledb.activity
+ description: Activities
+ unit: "events/s"
+ chart_type: stacked
+ dimensions:
+ - name: parse count
+ - name: execute count
+ - name: user commits
+ - name: user rollbacks
+ - name: oracledb.wait_time
+ description: Wait Time
+ unit: "ms"
+ chart_type: stacked
+ dimensions:
+ - name: application
+ - name: configuration
+ - name: administrative
+ - name: concurrency
+ - name: commit
+ - name: network
+ - name: user I/O
+ - name: system I/O
+ - name: scheduler
+ - name: other
+ - name: oracledb.tablespace_size
+ description: Size
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
+ - name: oracledb.tablespace_usage
+ description: Usage
+ unit: "KiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
+ - name: oracledb.tablespace_usage_in_percent
+ description: Usage
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
+ - name: oracledb.allocated_size
+ description: Size
+ unit: "B"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
+ - name: oracledb.allocated_usage
+ description: Usage
+ unit: "B"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
+ - name: oracledb.allocated_usage_in_percent
+ description: Usage
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per active tablespace
diff --git a/collectors/python.d.plugin/oracledb/metrics.csv b/collectors/python.d.plugin/oracledb/metrics.csv
deleted file mode 100644
index 126c5c4c5..000000000
--- a/collectors/python.d.plugin/oracledb/metrics.csv
+++ /dev/null
@@ -1,23 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-oracledb.session_count,,"total, active",sessions,Session Count,line,,python.d.plugin,oracledb
-oracledb.session_limit_usage,,usage,%,Session Limit Usage,area,,python.d.plugin,oracledb
-oracledb.logons,,logons,events/s,Logons,area,,python.d.plugin,oracledb
-oracledb.physical_disk_read_writes,,"reads, writes",events/s,Physical Disk Reads/Writes,area,,python.d.plugin,oracledb
-oracledb.sorts_on_disks,,sorts,events/s,Sorts On Disk,line,,python.d.plugin,oracledb
-oracledb.full_table_scans,,full table scans,events/s,Full Table Scans,line,,python.d.plugin,oracledb
-oracledb.database_wait_time_ratio,,wait time ratio,%,Database Wait Time Ratio,line,,python.d.plugin,oracledb
-oracledb.shared_pool_free_memory,,free memory,%,Shared Pool Free Memory,line,,python.d.plugin,oracledb
-oracledb.in_memory_sorts_ratio,,in-memory sorts,%,In-Memory Sorts Ratio,line,,python.d.plugin,oracledb
-oracledb.sql_service_response_time,,time,seconds,SQL Service Response Time,line,,python.d.plugin,oracledb
-oracledb.user_rollbacks,,rollbacks,events/s,User Rollbacks,line,,python.d.plugin,oracledb
-oracledb.enqueue_timeouts,,enqueue timeouts,events/s,Enqueue Timeouts,line,,python.d.plugin,oracledb
-oracledb.cache_hit_ration,,"buffer, cursor, library, row",%,Cache Hit Ratio,stacked,,python.d.plugin,oracledb
-oracledb.global_cache_blocks,,"corrupted, lost",events/s,Global Cache Blocks Events,area,,python.d.plugin,oracledb
-oracledb.activity,,"parse count, execute count, user commits, user rollbacks",events/s,Activities,stacked,,python.d.plugin,oracledb
-oracledb.wait_time,,"application, configuration, administrative, concurrency, commit, network, user I/O, system I/O, scheduler, other",ms,Wait Time,stacked,,python.d.plugin,oracledb
-oracledb.tablespace_size,,a dimension per active tablespace,KiB,Size,line,,python.d.plugin,oracledb
-oracledb.tablespace_usage,,a dimension per active tablespace,KiB,Usage,line,,python.d.plugin,oracledb
-oracledb.tablespace_usage_in_percent,,a dimension per active tablespace,%,Usage,line,,python.d.plugin,oracledb
-oracledb.allocated_size,,a dimension per active tablespace,B,Size,line,,python.d.plugin,oracledb
-oracledb.allocated_usage,,a dimension per active tablespace,B,Usage,line,,python.d.plugin,oracledb
-oracledb.allocated_usage_in_percent,,a dimension per active tablespace,%,Usage,line,,python.d.plugin,oracledb
diff --git a/collectors/python.d.plugin/pandas/metadata.yaml b/collectors/python.d.plugin/pandas/metadata.yaml
new file mode 100644
index 000000000..28a1d3b21
--- /dev/null
+++ b/collectors/python.d.plugin/pandas/metadata.yaml
@@ -0,0 +1,310 @@
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: pandas
+ monitored_instance:
+ name: Pandas
+ link: https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas
+ categories:
+ - data-collection.generic-data-collection
+ icon_filename: pandas.png
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - pandas
+ - python
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ [Pandas](https://pandas.pydata.org/) is a de-facto standard in reading and processing most types of structured data in Python.
+ If you have metrics appearing in a CSV, JSON, XML, HTML, or [other supported format](https://pandas.pydata.org/docs/user_guide/io.html),
+ either locally or via some HTTP endpoint, you can easily ingest and present those metrics in Netdata, by leveraging the Pandas collector.
+
+ This collector can be used to collect pretty much anything that can be read by Pandas, and then processed by Pandas.
+
+ More detailed information can be found in the Netdata documentation [here](https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas).
+ method_description: |
+ The collector uses [pandas](https://pandas.pydata.org/) to pull data and do pandas-based preprocessing, before feeding to Netdata.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Python Requirements
+ description: |
+ This collector depends on some Python (Python 3 only) packages that can usually be installed via `pip` or `pip3`.
+
+ ```bash
+ sudo pip install pandas requests
+ ```
+
+ Note: If you would like to use [`pandas.read_sql`](https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html) to query a database, you will need to install the below packages as well.
+
+ ```bash
+ sudo pip install 'sqlalchemy<2.0' psycopg2-binary
+ ```
+ configuration:
+ file:
+ name: python.d/pandas.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: chart_configs
+ description: an array of chart configuration dictionaries
+ default_value: "[]"
+ required: true
+ - name: chart_configs.name
+ description: name of the chart to be displayed in the dashboard.
+ default_value: None
+ required: true
+ - name: chart_configs.title
+ description: title of the chart to be displayed in the dashboard.
+ default_value: None
+ required: true
+ - name: chart_configs.family
+ description: "[family](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#family) of the chart to be displayed in the dashboard."
+ default_value: None
+ required: true
+ - name: chart_configs.context
+ description: "[context](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context) of the chart to be displayed in the dashboard."
+ default_value: None
+ required: true
+ - name: chart_configs.type
+ description: the type of the chart to be displayed in the dashboard.
+ default_value: None
+ required: true
+ - name: chart_configs.units
+ description: the units of the chart to be displayed in the dashboard.
+ default_value: None
+ required: true
+ - name: chart_configs.df_steps
+ description: a series of pandas operations (one per line) that each returns a dataframe.
+ default_value: None
+ required: true
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: Config
+ list:
+ - name: Temperature API Example
+ folding:
+ enabled: true
+ description: example pulling some hourly temperature data, a chart for today forecast (mean,min,max) and another chart for current.
+ config: |
+ temperature:
+ name: "temperature"
+ update_every: 5
+ chart_configs:
+ - name: "temperature_forecast_by_city"
+ title: "Temperature By City - Today Forecast"
+ family: "temperature.today"
+ context: "pandas.temperature"
+ type: "line"
+ units: "Celsius"
+ df_steps: >
+ pd.DataFrame.from_dict(
+ {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}&hourly=temperature_2m').json()['hourly']['temperature_2m']
+ for (city,lat,lng)
+ in [
+ ('dublin', 53.3441, -6.2675),
+ ('athens', 37.9792, 23.7166),
+ ('london', 51.5002, -0.1262),
+ ('berlin', 52.5235, 13.4115),
+ ('paris', 48.8567, 2.3510),
+ ('madrid', 40.4167, -3.7033),
+ ('new_york', 40.71, -74.01),
+ ('los_angeles', 34.05, -118.24),
+ ]
+ }
+ );
+ df.describe(); # get aggregate stats for each city;
+ df.transpose()[['mean', 'max', 'min']].reset_index(); # just take mean, min, max;
+ df.rename(columns={'index':'city'}); # some column renaming;
+ df.pivot(columns='city').mean().to_frame().reset_index(); # force to be one row per city;
+ df.rename(columns={0:'degrees'}); # some column renaming;
+ pd.concat([df, df['city']+'_'+df['level_0']], axis=1); # add new column combining city and summary measurement label;
+ df.rename(columns={0:'measurement'}); # some column renaming;
+ df[['measurement', 'degrees']].set_index('measurement'); # just take two columns we want;
+ df.sort_index(); # sort by city name;
+ df.transpose(); # transpose so its just one wide row;
+ - name: "temperature_current_by_city"
+ title: "Temperature By City - Current"
+ family: "temperature.current"
+ context: "pandas.temperature"
+ type: "line"
+ units: "Celsius"
+ df_steps: >
+ pd.DataFrame.from_dict(
+ {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}¤t_weather=true').json()['current_weather']
+ for (city,lat,lng)
+ in [
+ ('dublin', 53.3441, -6.2675),
+ ('athens', 37.9792, 23.7166),
+ ('london', 51.5002, -0.1262),
+ ('berlin', 52.5235, 13.4115),
+ ('paris', 48.8567, 2.3510),
+ ('madrid', 40.4167, -3.7033),
+ ('new_york', 40.71, -74.01),
+ ('los_angeles', 34.05, -118.24),
+ ]
+ }
+ );
+ df.transpose();
+ df[['temperature']];
+ df.transpose();
+ - name: API CSV Example
+ folding:
+ enabled: true
+ description: example showing a read_csv from a url and some light pandas data wrangling.
+ config: |
+ example_csv:
+ name: "example_csv"
+ update_every: 2
+ chart_configs:
+ - name: "london_system_cpu"
+ title: "London System CPU - Ratios"
+ family: "london_system_cpu"
+ context: "pandas"
+ type: "line"
+ units: "n"
+ df_steps: >
+ pd.read_csv('https://london.my-netdata.io/api/v1/data?chart=system.cpu&format=csv&after=-60', storage_options={'User-Agent': 'netdata'});
+ df.drop('time', axis=1);
+ df.mean().to_frame().transpose();
+ df.apply(lambda row: (row.user / row.system), axis = 1).to_frame();
+ df.rename(columns={0:'average_user_system_ratio'});
+ df*100;
+ - name: API JSON Example
+ folding:
+ enabled: true
+ description: example showing a read_json from a url and some light pandas data wrangling.
+ config: |
+ example_json:
+ name: "example_json"
+ update_every: 2
+ chart_configs:
+ - name: "london_system_net"
+ title: "London System Net - Total Bandwidth"
+ family: "london_system_net"
+ context: "pandas"
+ type: "area"
+ units: "kilobits/s"
+ df_steps: >
+ pd.DataFrame(requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['data'], columns=requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['labels']);
+ df.drop('time', axis=1);
+ abs(df);
+ df.sum(axis=1).to_frame();
+ df.rename(columns={0:'total_bandwidth'});
+ - name: XML Example
+ folding:
+ enabled: true
+ description: example showing a read_xml from a url and some light pandas data wrangling.
+ config: |
+ example_xml:
+ name: "example_xml"
+ update_every: 2
+ line_sep: "|"
+ chart_configs:
+ - name: "temperature_forcast"
+ title: "Temperature Forecast"
+ family: "temp"
+ context: "pandas.temp"
+ type: "line"
+ units: "celsius"
+ df_steps: >
+ pd.read_xml('http://metwdb-openaccess.ichec.ie/metno-wdb2ts/locationforecast?lat=54.7210798611;long=-8.7237392806', xpath='./product/time[1]/location/temperature', parser='etree')|
+ df.rename(columns={'value': 'dublin'})|
+ df[['dublin']]|
+ - name: SQL Example
+ folding:
+ enabled: true
+ description: example showing a read_sql from a postgres database using sqlalchemy.
+ config: |
+ sql:
+ name: "sql"
+ update_every: 5
+ chart_configs:
+ - name: "sql"
+ title: "SQL Example"
+ family: "sql.example"
+ context: "example"
+ type: "line"
+ units: "percent"
+ df_steps: >
+ pd.read_sql_query(
+ sql='\
+ select \
+ random()*100 as metric_1, \
+ random()*100 as metric_2 \
+ ',
+ con=create_engine('postgresql://localhost/postgres?user=netdata&password=netdata')
+ );
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
+ metrics:
+ folding:
+ title: Metrics
+ enabled: false
+ description: |
+ This collector is expecting one row in the final pandas DataFrame. It is that first row that will be taken
+ as the most recent values for each dimension on each chart using (`df.to_dict(orient='records')[0]`).
+ See [pd.to_dict()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_dict.html)."
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to the entire monitored application.
+ labels: []
+ metrics: []
diff --git a/collectors/python.d.plugin/pandas/pandas.conf b/collectors/python.d.plugin/pandas/pandas.conf
index ca523ed36..74a7da3e9 100644
--- a/collectors/python.d.plugin/pandas/pandas.conf
+++ b/collectors/python.d.plugin/pandas/pandas.conf
@@ -61,9 +61,7 @@ update_every: 5
#
# Additionally to the above, example also supports the following:
#
-# num_lines: 4 # the number of lines to create
-# lower: 0 # the lower bound of numbers to randomly sample from
-# upper: 100 # the upper bound of numbers to randomly sample from
+# chart_configs: [] # an array for chart config dictionaries.
#
# ----------------------------------------------------------------------
# AUTO-DETECTION JOBS
diff --git a/collectors/python.d.plugin/postfix/metadata.yaml b/collectors/python.d.plugin/postfix/metadata.yaml
index 3c1275ed2..1bbb61164 100644
--- a/collectors/python.d.plugin/postfix/metadata.yaml
+++ b/collectors/python.d.plugin/postfix/metadata.yaml
@@ -1,78 +1,124 @@
-meta:
- plugin_name: python.d.plugin
- module_name: postfix
- monitored_instance:
- name: Postfix
- link: ''
- categories:
- - data-collection.mail-servers
- icon_filename: 'postfix.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Keep an eye on Postfix metrics for efficient mail server operations. Improve your mail server performance with Netdata''s real-time metrics and built-in alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: postfix
+ monitored_instance:
+ name: Postfix
+ link: https://www.postfix.org/
+ categories:
+ - data-collection.mail-servers
+ icon_filename: "postfix.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - postfix
+ - mail
+ - mail server
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: >
+ Keep an eye on Postfix metrics for efficient mail server operations.
+
+ Improve your mail server performance with Netdata's real-time metrics and built-in alerts.
+ method_description: >
+ Monitors MTA email queue statistics using [postqueue](http://www.postfix.org/postqueue.1.html) tool.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: >
+ Postfix has internal access controls that limit activities on the mail queue. By default, all users are allowed to view
+ the queue. If your system is configured with stricter access controls, you need to grant the `netdata` user access to
+ view the mail queue. In order to do it, add `netdata` to `authorized_mailq_users` in the `/etc/postfix/main.cf` file.
+
+ See the `authorized_mailq_users` setting in
+ the [Postfix documentation](https://www.postfix.org/postconf.5.html) for more details.
+ default_behavior:
+ auto_detection:
+ description: "The collector executes `postqueue -p` to get Postfix queue statistics."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: ""
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: postfix.qemails
- description: Postfix Queue Emails
- unit: "emails"
- chart_type: line
- dimensions:
- - name: emails
- - name: postfix.qsize
- description: Postfix Queue Emails Size
- unit: "KiB"
- chart_type: area
- dimensions:
- - name: size
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: |
+ These metrics refer to the entire monitored application.
+ labels: []
+ metrics:
+ - name: postfix.qemails
+ description: Postfix Queue Emails
+ unit: "emails"
+ chart_type: line
+ dimensions:
+ - name: emails
+ - name: postfix.qsize
+ description: Postfix Queue Emails Size
+ unit: "KiB"
+ chart_type: area
+ dimensions:
+ - name: size
diff --git a/collectors/python.d.plugin/postfix/metrics.csv b/collectors/python.d.plugin/postfix/metrics.csv
deleted file mode 100644
index 696f6ad3a..000000000
--- a/collectors/python.d.plugin/postfix/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-postfix.qemails,,emails,emails,Postfix Queue Emails,line,,python.d.plugin,postfix
-postfix.qsize,,size,KiB,Postfix Queue Emails Size,area,,python.d.plugin,postfix
diff --git a/collectors/python.d.plugin/puppet/metadata.yaml b/collectors/python.d.plugin/puppet/metadata.yaml
index fc1627460..781519b6a 100644
--- a/collectors/python.d.plugin/puppet/metadata.yaml
+++ b/collectors/python.d.plugin/puppet/metadata.yaml
@@ -1,93 +1,185 @@
-meta:
- plugin_name: python.d.plugin
- module_name: puppet
- monitored_instance:
- name: Puppet
- link: ''
- categories:
- - data-collection.provisioning-systems
- icon_filename: 'puppet.jpeg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Puppet configurations with Netdata for changes, errors, and performance metrics. Enhance configuration management and troubleshoot faster with real-time insights and built-in alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: puppet
+ monitored_instance:
+ name: Puppet
+ link: "https://www.puppet.com/"
+ categories:
+ - data-collection.ci-cd-systems
+ icon_filename: "puppet.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - puppet
+ - jvm heap
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors Puppet metrics about JVM Heap, Non-Heap, CPU usage and file descriptors.'
+ method_description: |
+ It uses Puppet's metrics API endpoint to gather the metrics.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: By default, this collector will use `https://fqdn.example.com:8140` as the URL to look for metrics.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "python.d/puppet.conf"
+ options:
+ description: |
+ This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.
+
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+
+ > Notes:
+ > - Exact Fully Qualified Domain Name of the node should be used.
+ > - Usually Puppet Server/DB startup time is VERY long. So, there should be quite reasonable retry count.
+ > - A secured PuppetDB config may require a client certificate. This does not apply to the default PuppetDB configuration though.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: url
+ description: HTTP or HTTPS URL, exact Fully Qualified Domain Name of the node should be used.
+ default_value: https://fqdn.example.com:8081
+ required: true
+ - name: tls_verify
+ description: Control HTTPS server certificate verification.
+ default_value: "False"
+ required: false
+ - name: tls_ca_file
+ description: Optional CA (bundle) file to use
+ default_value: ""
+ required: false
+ - name: tls_cert_file
+ description: Optional client certificate file
+ default_value: ""
+ required: false
+ - name: tls_key_file
+ description: Optional client key file
+ default_value: ""
+ required: false
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 30
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic example configuration
+ folding:
+ enabled: false
+ config: |
+ puppetserver:
+ url: 'https://fqdn.example.com:8140'
+ autodetection_retry: 1
+ - name: TLS Certificate
+ description: An example using a TLS certificate
+ config: |
+ puppetdb:
+ url: 'https://fqdn.example.com:8081'
+ tls_cert_file: /path/to/client.crt
+ tls_key_file: /path/to/client.key
+ autodetection_retry: 1
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ puppetserver1:
+ url: 'https://fqdn.example.com:8140'
+ autodetection_retry: 1
+
+ puppetserver2:
+ url: 'https://fqdn.example2.com:8140'
+ autodetection_retry: 1
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: puppet.jvm
- description: JVM Heap
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: committed
- - name: used
- - name: puppet.jvm
- description: JVM Non-Heap
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: committed
- - name: used
- - name: puppet.cpu
- description: CPU usage
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: execution
- - name: GC
- - name: puppet.fdopen
- description: File Descriptors
- unit: "descriptors"
- chart_type: line
- dimensions:
- - name: used
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: puppet.jvm
+ description: JVM Heap
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: committed
+ - name: used
+ - name: puppet.jvm
+ description: JVM Non-Heap
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: committed
+ - name: used
+ - name: puppet.cpu
+ description: CPU usage
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: execution
+ - name: GC
+ - name: puppet.fdopen
+ description: File Descriptors
+ unit: "descriptors"
+ chart_type: line
+ dimensions:
+ - name: used
diff --git a/collectors/python.d.plugin/puppet/metrics.csv b/collectors/python.d.plugin/puppet/metrics.csv
deleted file mode 100644
index 1ec99e10e..000000000
--- a/collectors/python.d.plugin/puppet/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-puppet.jvm,,"committed, used",MiB,JVM Heap,area,,python.d.plugin,puppet
-puppet.jvm,,"committed, used",MiB,JVM Non-Heap,area,,python.d.plugin,puppet
-puppet.cpu,,"execution, GC",percentage,CPU usage,stacked,,python.d.plugin,puppet
-puppet.fdopen,,used,descriptors,File Descriptors,line,,python.d.plugin,puppet
diff --git a/collectors/python.d.plugin/rethinkdbs/metadata.yaml b/collectors/python.d.plugin/rethinkdbs/metadata.yaml
index 53959b895..bbc50eac6 100644
--- a/collectors/python.d.plugin/rethinkdbs/metadata.yaml
+++ b/collectors/python.d.plugin/rethinkdbs/metadata.yaml
@@ -1,121 +1,188 @@
-meta:
- plugin_name: python.d.plugin
- module_name: rethinkdbs
- monitored_instance:
- name: RethinkDB
- link: ''
- categories:
- - data-collection.database-servers
- icon_filename: 'rethinkdb.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor RethinkDB performance for real-time database operations and performance. Improve your database operations with Netdata''s real-time metrics and built-in alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: rethinkdbs
+ monitored_instance:
+ name: RethinkDB
+ link: 'https://rethinkdb.com/'
+ categories:
+ - data-collection.database-servers
+ icon_filename: 'rethinkdb.png'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - rethinkdb
+ - database
+ - db
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors metrics about RethinkDB clusters and database servers.'
+ method_description: 'It uses the `rethinkdb` python module to connect to a RethinkDB server instance and gather statistics.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'When no configuration file is found, the collector tries to connect to 127.0.0.1:28015.'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Required python module'
+ description: 'The collector requires the `rethinkdb` python module to be installed.'
+ configuration:
+ file:
+ name: python.d/rethinkdbs.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: host
+ description: Hostname or ip of the RethinkDB server.
+ default_value: 'localhost'
+ required: false
+ - name: port
+ description: Port to connect to the RethinkDB server.
+ default_value: '28015'
+ required: false
+ - name: user
+ description: The username to use to connect to the RethinkDB server.
+ default_value: 'admin'
+ required: false
+ - name: password
+ description: The password to use to connect to the RethinkDB server.
+ default_value: ''
+ required: false
+ - name: timeout
+ description: Set a connect timeout to the RethinkDB server.
+ default_value: '2'
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Local RethinkDB server
+ description: An example of a configuration for a local RethinkDB server
+ folding:
+ enabled: false
+ config: |
+ localhost:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 28015
+ user: "user"
+ password: "pass"
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: rethinkdb.cluster_connected_servers
- description: Connected Servers
- unit: "servers"
- chart_type: stacked
- dimensions:
- - name: connected
- - name: missing
- - name: rethinkdb.cluster_clients_active
- description: Active Clients
- unit: "clients"
- chart_type: line
- dimensions:
- - name: active
- - name: rethinkdb.cluster_queries
- description: Queries
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: queries
- - name: rethinkdb.cluster_documents
- description: Documents
- unit: "documents/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
- - name: database server
- description: ""
- labels: []
- metrics:
- - name: rethinkdb.client_connections
- description: Client Connections
- unit: "connections"
- chart_type: line
- dimensions:
- - name: connections
- - name: rethinkdb.clients_active
- description: Active Clients
- unit: "clients"
- chart_type: line
- dimensions:
- - name: active
- - name: rethinkdb.queries
- description: Queries
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: queries
- - name: rethinkdb.documents
- description: Documents
- unit: "documents/s"
- chart_type: line
- dimensions:
- - name: reads
- - name: writes
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: rethinkdb.cluster_connected_servers
+ description: Connected Servers
+ unit: "servers"
+ chart_type: stacked
+ dimensions:
+ - name: connected
+ - name: missing
+ - name: rethinkdb.cluster_clients_active
+ description: Active Clients
+ unit: "clients"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: rethinkdb.cluster_queries
+ description: Queries
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: queries
+ - name: rethinkdb.cluster_documents
+ description: Documents
+ unit: "documents/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
+ - name: database server
+ description: ""
+ labels: []
+ metrics:
+ - name: rethinkdb.client_connections
+ description: Client Connections
+ unit: "connections"
+ chart_type: line
+ dimensions:
+ - name: connections
+ - name: rethinkdb.clients_active
+ description: Active Clients
+ unit: "clients"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: rethinkdb.queries
+ description: Queries
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: queries
+ - name: rethinkdb.documents
+ description: Documents
+ unit: "documents/s"
+ chart_type: line
+ dimensions:
+ - name: reads
+ - name: writes
diff --git a/collectors/python.d.plugin/rethinkdbs/metrics.csv b/collectors/python.d.plugin/rethinkdbs/metrics.csv
deleted file mode 100644
index 2eb1eb7aa..000000000
--- a/collectors/python.d.plugin/rethinkdbs/metrics.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-rethinkdb.cluster_connected_servers,,"connected, missing",servers,Connected Servers,stacked,,python.d.plugin,rethinkdbs
-rethinkdb.cluster_clients_active,,active,clients,Active Clients,line,,python.d.plugin,rethinkdbs
-rethinkdb.cluster_queries,,queries,queries/s,Queries,line,,python.d.plugin,rethinkdbs
-rethinkdb.cluster_documents,,"reads, writes",documents/s,Documents,line,,python.d.plugin,rethinkdbs
-rethinkdb.client_connections,database server,connections,connections,Client Connections,line,,python.d.plugin,rethinkdbs
-rethinkdb.clients_active,database server,active,clients,Active Clients,line,,python.d.plugin,rethinkdbs
-rethinkdb.queries,database server,queries,queries/s,Queries,line,,python.d.plugin,rethinkdbs
-rethinkdb.documents,database server,"reads, writes",documents/s,Documents,line,,python.d.plugin,rethinkdbs
diff --git a/collectors/python.d.plugin/retroshare/metadata.yaml b/collectors/python.d.plugin/retroshare/metadata.yaml
index b847bb6fb..0a769616b 100644
--- a/collectors/python.d.plugin/retroshare/metadata.yaml
+++ b/collectors/python.d.plugin/retroshare/metadata.yaml
@@ -1,91 +1,144 @@
-meta:
- plugin_name: python.d.plugin
- module_name: retroshare
- monitored_instance:
- name: RetroShare
- link: ''
- categories:
- - data-collection.p2p
- icon_filename: 'retroshare.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor RetroShare metrics for efficient peer-to-peer communication and file sharing. Enhance your communication and file sharing performance with real-time insights and alerts from Netdata.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: retroshare_dht_working
- link: https://github.com/netdata/netdata/blob/master/health/health.d/retroshare.conf
- metric: retroshare.dht
- info: number of DHT peers
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: retroshare
+ monitored_instance:
+ name: RetroShare
+ link: "https://retroshare.cc/"
+ categories:
+ - data-collection.media-streaming-servers
+ icon_filename: "retroshare.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - retroshare
+ - p2p
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors RetroShare statistics such as application bandwidth, peers, and DHT metrics."
+ method_description: "It connects to the RetroShare web interface to gather metrics."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "The collector will attempt to connect and detect a RetroShare web interface through http://localhost:9090, even without any configuration."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "RetroShare web interface"
+ description: |
+ RetroShare needs to be configured to enable the RetroShare WEB Interface and allow access from the Netdata host.
+ configuration:
+ file:
+ name: python.d/retroshare.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: url
+ description: The URL to the RetroShare Web UI.
+ default_value: "http://localhost:9090"
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Local RetroShare Web UI
+ description: A basic configuration for a RetroShare server running on localhost.
+ config: |
+ localhost:
+ name: 'local retroshare'
+ url: 'http://localhost:9090'
+ - name: Remote RetroShare Web UI
+ description: A basic configuration for a remote RetroShare server.
+ config: |
+ remote:
+ name: 'remote retroshare'
+ url: 'http://1.2.3.4:9090'
+
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: retroshare_dht_working
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/retroshare.conf
+ metric: retroshare.dht
+ info: number of DHT peers
metrics:
- - name: retroshare.bandwidth
- description: RetroShare Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: Upload
- - name: Download
- - name: retroshare.peers
- description: RetroShare Peers
- unit: "peers"
- chart_type: line
- dimensions:
- - name: All friends
- - name: Connected friends
- - name: retroshare.dht
- description: Retroshare DHT
- unit: "peers"
- chart_type: line
- dimensions:
- - name: DHT nodes estimated
- - name: RS nodes estimated
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: retroshare.bandwidth
+ description: RetroShare Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: Upload
+ - name: Download
+ - name: retroshare.peers
+ description: RetroShare Peers
+ unit: "peers"
+ chart_type: line
+ dimensions:
+ - name: All friends
+ - name: Connected friends
+ - name: retroshare.dht
+ description: Retroshare DHT
+ unit: "peers"
+ chart_type: line
+ dimensions:
+ - name: DHT nodes estimated
+ - name: RS nodes estimated
diff --git a/collectors/python.d.plugin/retroshare/metrics.csv b/collectors/python.d.plugin/retroshare/metrics.csv
deleted file mode 100644
index 35a0a48c6..000000000
--- a/collectors/python.d.plugin/retroshare/metrics.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-retroshare.bandwidth,,"Upload, Download",kilobits/s,RetroShare Bandwidth,area,,python.d.plugin,retroshare
-retroshare.peers,,"All friends, Connected friends",peers,RetroShare Peers,line,,python.d.plugin,retroshare
-retroshare.dht,,"DHT nodes estimated, RS nodes estimated",peers,Retroshare DHT,line,,python.d.plugin,retroshare
diff --git a/collectors/python.d.plugin/riakkv/metadata.yaml b/collectors/python.d.plugin/riakkv/metadata.yaml
index 795763ebd..441937f89 100644
--- a/collectors/python.d.plugin/riakkv/metadata.yaml
+++ b/collectors/python.d.plugin/riakkv/metadata.yaml
@@ -1,300 +1,358 @@
-meta:
- plugin_name: python.d.plugin
- module_name: riakkv
- monitored_instance:
- name: RiakKV
- link: ''
- categories:
- - data-collection.database-servers
- icon_filename: 'riak.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine RiakKV metrics for optimal key-value database performance. Netdata provides comprehensive dashboards and anomaly detection for efficient database operations.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: riakkv_1h_kv_get_mean_latency
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.kv.latency.get
- info: average time between reception of client GET request and subsequent response to client over the last hour
-- name: riakkv_kv_get_slow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.kv.latency.get
- info: average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour
-- name: riakkv_1h_kv_put_mean_latency
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.kv.latency.put
- info: average time between reception of client PUT request and subsequent response to the client over the last hour
-- name: riakkv_kv_put_slow
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.kv.latency.put
- info: average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour
-- name: riakkv_vm_high_process_count
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.vm
- info: number of processes running in the Erlang VM
-- name: riakkv_list_keys_active
- link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
- metric: riak.core.fsm_active
- info: number of currently running list keys finite state machines
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: riakkv
+ monitored_instance:
+ name: RiakKV
+ link: "https://riak.com/products/riak-kv/index.html"
+ categories:
+ - data-collection.database-servers
+ icon_filename: "riak.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - database
+ - nosql
+ - big data
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors RiakKV metrics about throughput, latency, resources and more.'
+ method_description: "This collector reads the database stats from the `/stats` endpoint."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "If the /stats endpoint is accessible, RiakKV instances on the local host running on port 8098 will be autodetected."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Configure RiakKV to enable /stats endpoint
+ description: |
+ You can follow the RiakKV configuration reference documentation for how to enable this.
+
+ Source : https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces
+ configuration:
+ file:
+ name: "python.d/riakkv.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: url
+ description: The url of the server
+ default_value: no
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic (default)
+ folding:
+ enabled: false
+ description: A basic example configuration per job
+ config: |
+ local:
+ url: 'http://localhost:8098/stats'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ local:
+ url: 'http://localhost:8098/stats'
+
+ remote:
+ url: 'http://192.0.2.1:8098/stats'
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: riakkv_1h_kv_get_mean_latency
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.kv.latency.get
+ info: average time between reception of client GET request and subsequent response to client over the last hour
+ - name: riakkv_kv_get_slow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.kv.latency.get
+ info: average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour
+ - name: riakkv_1h_kv_put_mean_latency
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.kv.latency.put
+ info: average time between reception of client PUT request and subsequent response to the client over the last hour
+ - name: riakkv_kv_put_slow
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.kv.latency.put
+ info: average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour
+ - name: riakkv_vm_high_process_count
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.vm
+ info: number of processes running in the Erlang VM
+ - name: riakkv_list_keys_active
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf
+ metric: riak.core.fsm_active
+ info: number of currently running list keys finite state machines
metrics:
- - name: riak.kv.throughput
- description: Reads & writes coordinated by this node
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: gets
- - name: puts
- - name: riak.dt.vnode_updates
- description: Update operations coordinated by local vnodes by data type
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: counters
- - name: sets
- - name: maps
- - name: riak.search
- description: Search queries on the node
- unit: "queries/s"
- chart_type: line
- dimensions:
- - name: queries
- - name: riak.search.documents
- description: Documents indexed by search
- unit: "documents/s"
- chart_type: line
- dimensions:
- - name: indexed
- - name: riak.consistent.operations
- description: Consistent node operations
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: gets
- - name: puts
- - name: riak.kv.latency.get
- description: Time between reception of a client GET request and subsequent response to client
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.kv.latency.put
- description: Time between reception of a client PUT request and subsequent response to client
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.dt.latency.counter_merge
- description: Time it takes to perform an Update Counter operation
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.dt.latency.set_merge
- description: Time it takes to perform an Update Set operation
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.dt.latency.map_merge
- description: Time it takes to perform an Update Map operation
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.search.latency.query
- description: Search query latency
- unit: "ms"
- chart_type: line
- dimensions:
- - name: median
- - name: min
- - name: '95'
- - name: '99'
- - name: '999'
- - name: max
- - name: riak.search.latency.index
- description: Time it takes Search to index a new document
- unit: "ms"
- chart_type: line
- dimensions:
- - name: median
- - name: min
- - name: '95'
- - name: '99'
- - name: '999'
- - name: max
- - name: riak.consistent.latency.get
- description: Strongly consistent read latency
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.consistent.latency.put
- description: Strongly consistent write latency
- unit: "ms"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.vm
- description: Total processes running in the Erlang VM
- unit: "total"
- chart_type: line
- dimensions:
- - name: processes
- - name: riak.vm.memory.processes
- description: Memory allocated & used by Erlang processes
- unit: "MB"
- chart_type: line
- dimensions:
- - name: allocated
- - name: used
- - name: riak.kv.siblings_encountered.get
- description: Number of siblings encountered during GET operations by this node during the past minute
- unit: "siblings"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.kv.objsize.get
- description: Object size encountered by this node during the past minute
- unit: "KB"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.search.vnodeq_size
- description: Number of unprocessed messages in the vnode message queues of Search on this node in the past minute
- unit: "messages"
- chart_type: line
- dimensions:
- - name: mean
- - name: median
- - name: '95'
- - name: '99'
- - name: '100'
- - name: riak.search.index
- description: Number of document index errors encountered by Search
- unit: "errors"
- chart_type: line
- dimensions:
- - name: errors
- - name: riak.core.protobuf_connections
- description: Protocol buffer connections by status
- unit: "connections"
- chart_type: line
- dimensions:
- - name: active
- - name: riak.core.repairs
- description: Number of repair operations this node has coordinated
- unit: "repairs"
- chart_type: line
- dimensions:
- - name: read
- - name: riak.core.fsm_active
- description: Active finite state machines by kind
- unit: "fsms"
- chart_type: line
- dimensions:
- - name: get
- - name: put
- - name: secondary index
- - name: list keys
- - name: riak.core.fsm_rejected
- description: Finite state machines being rejected by Sidejobs overload protection
- unit: "fsms"
- chart_type: line
- dimensions:
- - name: get
- - name: put
- - name: riak.search.index
- description: Number of writes to Search failed due to bad data format by reason
- unit: "writes"
- chart_type: line
- dimensions:
- - name: bad_entry
- - name: extract_fail
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: riak.kv.throughput
+ description: Reads & writes coordinated by this node
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: gets
+ - name: puts
+ - name: riak.dt.vnode_updates
+ description: Update operations coordinated by local vnodes by data type
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: counters
+ - name: sets
+ - name: maps
+ - name: riak.search
+ description: Search queries on the node
+ unit: "queries/s"
+ chart_type: line
+ dimensions:
+ - name: queries
+ - name: riak.search.documents
+ description: Documents indexed by search
+ unit: "documents/s"
+ chart_type: line
+ dimensions:
+ - name: indexed
+ - name: riak.consistent.operations
+ description: Consistent node operations
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: gets
+ - name: puts
+ - name: riak.kv.latency.get
+ description: Time between reception of a client GET request and subsequent response to client
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.kv.latency.put
+ description: Time between reception of a client PUT request and subsequent response to client
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.dt.latency.counter_merge
+ description: Time it takes to perform an Update Counter operation
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.dt.latency.set_merge
+ description: Time it takes to perform an Update Set operation
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.dt.latency.map_merge
+ description: Time it takes to perform an Update Map operation
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.search.latency.query
+ description: Search query latency
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: median
+ - name: min
+ - name: "95"
+ - name: "99"
+ - name: "999"
+ - name: max
+ - name: riak.search.latency.index
+ description: Time it takes Search to index a new document
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: median
+ - name: min
+ - name: "95"
+ - name: "99"
+ - name: "999"
+ - name: max
+ - name: riak.consistent.latency.get
+ description: Strongly consistent read latency
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.consistent.latency.put
+ description: Strongly consistent write latency
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.vm
+ description: Total processes running in the Erlang VM
+ unit: "total"
+ chart_type: line
+ dimensions:
+ - name: processes
+ - name: riak.vm.memory.processes
+ description: Memory allocated & used by Erlang processes
+ unit: "MB"
+ chart_type: line
+ dimensions:
+ - name: allocated
+ - name: used
+ - name: riak.kv.siblings_encountered.get
+ description: Number of siblings encountered during GET operations by this node during the past minute
+ unit: "siblings"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.kv.objsize.get
+ description: Object size encountered by this node during the past minute
+ unit: "KB"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.search.vnodeq_size
+ description: Number of unprocessed messages in the vnode message queues of Search on this node in the past minute
+ unit: "messages"
+ chart_type: line
+ dimensions:
+ - name: mean
+ - name: median
+ - name: "95"
+ - name: "99"
+ - name: "100"
+ - name: riak.search.index
+ description: Number of document index errors encountered by Search
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: errors
+ - name: riak.core.protobuf_connections
+ description: Protocol buffer connections by status
+ unit: "connections"
+ chart_type: line
+ dimensions:
+ - name: active
+ - name: riak.core.repairs
+ description: Number of repair operations this node has coordinated
+ unit: "repairs"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: riak.core.fsm_active
+ description: Active finite state machines by kind
+ unit: "fsms"
+ chart_type: line
+ dimensions:
+ - name: get
+ - name: put
+ - name: secondary index
+ - name: list keys
+ - name: riak.core.fsm_rejected
+ description: Finite state machines being rejected by Sidejobs overload protection
+ unit: "fsms"
+ chart_type: line
+ dimensions:
+ - name: get
+ - name: put
+ - name: riak.search.index
+ description: Number of writes to Search failed due to bad data format by reason
+ unit: "writes"
+ chart_type: line
+ dimensions:
+ - name: bad_entry
+ - name: extract_fail
diff --git a/collectors/python.d.plugin/riakkv/metrics.csv b/collectors/python.d.plugin/riakkv/metrics.csv
deleted file mode 100644
index fbac7603a..000000000
--- a/collectors/python.d.plugin/riakkv/metrics.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-riak.kv.throughput,,"gets, puts",operations/s,Reads & writes coordinated by this node,line,,python.d.plugin,riakkv
-riak.dt.vnode_updates,,"counters, sets, maps",operations/s,Update operations coordinated by local vnodes by data type,line,,python.d.plugin,riakkv
-riak.search,,queries,queries/s,Search queries on the node,line,,python.d.plugin,riakkv
-riak.search.documents,,indexed,documents/s,Documents indexed by search,line,,python.d.plugin,riakkv
-riak.consistent.operations,,"gets, puts",operations/s,Consistent node operations,line,,python.d.plugin,riakkv
-riak.kv.latency.get,,"mean, median, 95, 99, 100",ms,Time between reception of a client GET request and subsequent response to client,line,,python.d.plugin,riakkv
-riak.kv.latency.put,,"mean, median, 95, 99, 100",ms,Time between reception of a client PUT request and subsequent response to client,line,,python.d.plugin,riakkv
-riak.dt.latency.counter_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Counter operation,line,,python.d.plugin,riakkv
-riak.dt.latency.set_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Set operation,line,,python.d.plugin,riakkv
-riak.dt.latency.map_merge,,"mean, median, 95, 99, 100",ms,Time it takes to perform an Update Map operation,line,,python.d.plugin,riakkv
-riak.search.latency.query,,"median, min, 95, 99, 999, max",ms,Search query latency,line,,python.d.plugin,riakkv
-riak.search.latency.index,,"median, min, 95, 99, 999, max",ms,Time it takes Search to index a new document,line,,python.d.plugin,riakkv
-riak.consistent.latency.get,,"mean, median, 95, 99, 100",ms,Strongly consistent read latency,line,,python.d.plugin,riakkv
-riak.consistent.latency.put,,"mean, median, 95, 99, 100",ms,Strongly consistent write latency,line,,python.d.plugin,riakkv
-riak.vm,,processes,total,Total processes running in the Erlang VM,line,,python.d.plugin,riakkv
-riak.vm.memory.processes,,"allocated, used",MB,Memory allocated & used by Erlang processes,line,,python.d.plugin,riakkv
-riak.kv.siblings_encountered.get,,"mean, median, 95, 99, 100",siblings,Number of siblings encountered during GET operations by this node during the past minute,line,,python.d.plugin,riakkv
-riak.kv.objsize.get,,"mean, median, 95, 99, 100",KB,Object size encountered by this node during the past minute,line,,python.d.plugin,riakkv
-riak.search.vnodeq_size,,"mean, median, 95, 99, 100",messages,Number of unprocessed messages in the vnode message queues of Search on this node in the past minute,line,,python.d.plugin,riakkv
-riak.search.index,,errors,errors,Number of document index errors encountered by Search,line,,python.d.plugin,riakkv
-riak.core.protobuf_connections,,active,connections,Protocol buffer connections by status,line,,python.d.plugin,riakkv
-riak.core.repairs,,read,repairs,Number of repair operations this node has coordinated,line,,python.d.plugin,riakkv
-riak.core.fsm_active,,"get, put, secondary index, list keys",fsms,Active finite state machines by kind,line,,python.d.plugin,riakkv
-riak.core.fsm_rejected,,"get, put",fsms,Finite state machines being rejected by Sidejobs overload protection,line,,python.d.plugin,riakkv
-riak.search.index,,"bad_entry, extract_fail",writes,Number of writes to Search failed due to bad data format by reason,line,,python.d.plugin,riakkv
diff --git a/collectors/python.d.plugin/samba/metadata.yaml b/collectors/python.d.plugin/samba/metadata.yaml
index d9231a1f3..43bca208e 100644
--- a/collectors/python.d.plugin/samba/metadata.yaml
+++ b/collectors/python.d.plugin/samba/metadata.yaml
@@ -1,123 +1,196 @@
-meta:
- plugin_name: python.d.plugin
- module_name: samba
- monitored_instance:
- name: Samba
- link: ''
- categories:
- - data-collection.storage-mount-points-and-filesystems
- icon_filename: 'samba.jpg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Samba performance for optimal network file sharing operations. Netdata provides real-time insights and alerts for efficient file sharing.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: samba
+ monitored_instance:
+ name: Samba
+ link: https://www.samba.org/samba/
+ categories:
+ - data-collection.storage-mount-points-and-filesystems
+ icon_filename: "samba.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - samba
+ - file sharing
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors the performance metrics of Samba file sharing."
+ method_description: |
+ It is using the `smbstatus` command-line tool.
+
+ Executed commands:
+
+ - `sudo -n smbstatus -P`
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: |
+ `smbstatus` is used, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.
+ default_behavior:
+ auto_detection:
+ description: "After all the permissions are satisfied, the `smbstatus -P` binary is executed."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Permissions and programs
+ description: |
+ To run the collector you need:
+
+ - `smbstatus` program
+ - `sudo` program
+ - `smbd` must be compiled with profiling enabled
+ - `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level`
+
+ The module uses `smbstatus`, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.
+
+ - add to your `/etc/sudoers` file:
+
+ `which smbstatus` shows the full path to the binary.
+
+ ```bash
+ netdata ALL=(root) NOPASSWD: /path/to/smbstatus
+ ```
+
+ - Reset Netdata's systemd unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux distributions with systemd)
+
+ The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `smbstatus` using `sudo`.
+
+
+ As the `root` user, do the following:
+
+ ```cmd
+ mkdir /etc/systemd/system/netdata.service.d
+ echo -e '[Service]\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf
+ systemctl daemon-reload
+ systemctl restart netdata.service
+ ```
+ configuration:
+ file:
+ name: python.d/samba.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic example configuration.
+ config: |
+ my_job_name:
+ name: my_name
+ update_every: 1
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: syscall.rw
- description: R/Ws
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: sendfile
- - name: recvfile
- - name: smb2.rw
- description: R/Ws
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: readout
- - name: writein
- - name: readin
- - name: writeout
- - name: smb2.create_close
- description: Create/Close
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: create
- - name: close
- - name: smb2.get_set_info
- description: Info
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: getinfo
- - name: setinfo
- - name: smb2.find
- description: Find
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: find
- - name: smb2.notify
- description: Notify
- unit: "operations/s"
- chart_type: line
- dimensions:
- - name: notify
- - name: smb2.sm_counters
- description: Lesser Ops
- unit: "count"
- chart_type: stacked
- dimensions:
- - name: tcon
- - name: negprot
- - name: tdis
- - name: cancel
- - name: logoff
- - name: flush
- - name: lock
- - name: keepalive
- - name: break
- - name: sessetup
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: syscall.rw
+ description: R/Ws
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: sendfile
+ - name: recvfile
+ - name: smb2.rw
+ description: R/Ws
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: readout
+ - name: writein
+ - name: readin
+ - name: writeout
+ - name: smb2.create_close
+ description: Create/Close
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: create
+ - name: close
+ - name: smb2.get_set_info
+ description: Info
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: getinfo
+ - name: setinfo
+ - name: smb2.find
+ description: Find
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: find
+ - name: smb2.notify
+ description: Notify
+ unit: "operations/s"
+ chart_type: line
+ dimensions:
+ - name: notify
+ - name: smb2.sm_counters
+ description: Lesser Ops
+ unit: "count"
+ chart_type: stacked
+ dimensions:
+ - name: tcon
+ - name: negprot
+ - name: tdis
+ - name: cancel
+ - name: logoff
+ - name: flush
+ - name: lock
+ - name: keepalive
+ - name: break
+ - name: sessetup
diff --git a/collectors/python.d.plugin/samba/metrics.csv b/collectors/python.d.plugin/samba/metrics.csv
deleted file mode 100644
index 600181f63..000000000
--- a/collectors/python.d.plugin/samba/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-syscall.rw,,"sendfile, recvfile",KiB/s,R/Ws,area,,python.d.plugin,samba
-smb2.rw,,"readout, writein, readin, writeout",KiB/s,R/Ws,area,,python.d.plugin,samba
-smb2.create_close,,"create, close",operations/s,Create/Close,line,,python.d.plugin,samba
-smb2.get_set_info,,"getinfo, setinfo",operations/s,Info,line,,python.d.plugin,samba
-smb2.find,,find,operations/s,Find,line,,python.d.plugin,samba
-smb2.notify,,notify,operations/s,Notify,line,,python.d.plugin,samba
-smb2.sm_counters,,"tcon, negprot, tdis, cancel, logoff, flush, lock, keepalive, break, sessetup",count,Lesser Ops,stacked,,python.d.plugin,samba
diff --git a/collectors/python.d.plugin/sensors/metadata.yaml b/collectors/python.d.plugin/sensors/metadata.yaml
index 1c01554ae..c3f681915 100644
--- a/collectors/python.d.plugin/sensors/metadata.yaml
+++ b/collectors/python.d.plugin/sensors/metadata.yaml
@@ -1,108 +1,175 @@
-meta:
- plugin_name: python.d.plugin
- module_name: sensors
- monitored_instance:
- name: Linux Sensors (lm-sensors)
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: 'microchip.svg'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine Linux Sensors metrics with Netdata for insights into hardware health and performance. Enhance your system''s reliability with real-time hardware health insights.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: chip
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: sensors
+ monitored_instance:
+ name: Linux Sensors (lm-sensors)
+ link: https://hwmon.wiki.kernel.org/lm_sensors
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "microchip.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - sensors
+ - temperature
+ - voltage
+ - current
+ - power
+ - fan
+ - energy
+ - humidity
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ Examine Linux Sensors metrics with Netdata for insights into hardware health and performance.
+
+ Enhance your system's reliability with real-time hardware health insights.
+ method_description: >
+ Reads system sensors information (temperature, voltage, electric current, power, etc.) via [lm-sensors](https://hwmon.wiki.kernel.org/lm_sensors).
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: >
+ The following type of sensors are auto-detected:
+
+ - temperature
+ - fan
+ - voltage
+ - current
+ - power
+ - energy
+ - humidity
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: python.d/sensors.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: types
+ description: The types of sensors to collect.
+ default_value: "temperature, fan, voltage, current, power, energy, humidity"
+ required: true
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: Config
+ list:
+ - name: Default
+ folding:
+ enabled: false
+ description: Default configuration.
+ config: |
+ types:
+ - temperature
+ - fan
+ - voltage
+ - current
+ - power
+ - energy
+ - humidity
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: sensors.temperature
- description: Temperature
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.voltage
- description: Voltage
- unit: "Volts"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.current
- description: Current
- unit: "Ampere"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.power
- description: Power
- unit: "Watt"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.fan
- description: Fans speed
- unit: "Rotations/min"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.energy
- description: Energy
- unit: "Joule"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
- - name: sensors.humidity
- description: Humidity
- unit: "Percent"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: chip
+ description: >
+ Metrics related to chips. Each chip provides a set of the following metrics, each having the chip name in the metric name as reported by `sensors -u`.
+ labels: []
+ metrics:
+ - name: sensors.temperature
+ description: Temperature
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.voltage
+ description: Voltage
+ unit: "Volts"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.current
+ description: Current
+ unit: "Ampere"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.power
+ description: Power
+ unit: "Watt"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.fan
+ description: Fans speed
+ unit: "Rotations/min"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.energy
+ description: Energy
+ unit: "Joule"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
+ - name: sensors.humidity
+ description: Humidity
+ unit: "Percent"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
diff --git a/collectors/python.d.plugin/sensors/metrics.csv b/collectors/python.d.plugin/sensors/metrics.csv
deleted file mode 100644
index d49e19384..000000000
--- a/collectors/python.d.plugin/sensors/metrics.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-sensors.temperature,chip,a dimension per sensor,Celsius,Temperature,line,,python.d.plugin,sensors
-sensors.voltage,chip,a dimension per sensor,Volts,Voltage,line,,python.d.plugin,sensors
-sensors.current,chip,a dimension per sensor,Ampere,Current,line,,python.d.plugin,sensors
-sensors.power,chip,a dimension per sensor,Watt,Power,line,,python.d.plugin,sensors
-sensors.fan,chip,a dimension per sensor,Rotations/min,Fans speed,line,,python.d.plugin,sensors
-sensors.energy,chip,a dimension per sensor,Joule,Energy,line,,python.d.plugin,sensors
-sensors.humidity,chip,a dimension per sensor,Percent,Humidity,line,,python.d.plugin,sensors
diff --git a/collectors/python.d.plugin/smartd_log/metadata.yaml b/collectors/python.d.plugin/smartd_log/metadata.yaml
index 334fb90cb..d11949691 100644
--- a/collectors/python.d.plugin/smartd_log/metadata.yaml
+++ b/collectors/python.d.plugin/smartd_log/metadata.yaml
@@ -1,276 +1,429 @@
-meta:
- plugin_name: python.d.plugin
- module_name: smartd_log
- monitored_instance:
- name: S.M.A.R.T.
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: 'smart.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor S.M.A.R.T. metrics for insights into your hard drive health and performance. Enhance your hard drive performance and reliability with real-time insights and alerts from Netdata.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: smartd_log
+ monitored_instance:
+ name: S.M.A.R.T.
+ link: "https://linux.die.net/man/8/smartd"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "smart.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - smart
+ - S.M.A.R.T.
+ - SCSI devices
+ - ATA devices
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors HDD/SSD S.M.A.R.T. metrics about drive health and performance.
+ method_description: |
+ It reads `smartd` log files to collect the metrics.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: Upon satisfying the prerequisites, the collector will auto-detect metrics if written in either `/var/log/smartd/` or `/var/lib/smartmontools/`.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Configure `smartd` to write attribute information to files.
+ description: |
+ `smartd` must be running with `-A` option to write `smartd` attribute information to files.
+
+ For this you need to set `smartd_opts` (or `SMARTD_ARGS`, check _smartd.service_ content) in `/etc/default/smartmontools`:
+
+ ```
+ # dump smartd attrs info every 600 seconds
+ smartd_opts="-A /var/log/smartd/ -i 600"
+ ```
+
+ You may need to create the smartd directory before smartd will write to it:
+
+ ```sh
+ mkdir -p /var/log/smartd
+ ```
+
+ Otherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also for more info on the `-A --attributelog=PREFIX` command.
+
+ `smartd` appends logs at every run. It's strongly recommended to use `logrotate` for smartd files.
+ configuration:
+ file:
+ name: "python.d/smartd_log.conf"
+ options:
+ description: |
+ This particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.
+
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: log_path
+ description: path to smartd log files.
+ default_value: /var/log/smartd
+ required: true
+ - name: exclude_disks
+ description: Space-separated patterns. If the pattern is in the drive name, the module will not collect data for it.
+ default_value: ""
+ required: false
+ - name: age
+ description: Time in minutes since the last dump to file.
+ default_value: 30
+ required: false
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ folding:
+ enabled: false
+ config: |
+ custom:
+ name: smartd_log
+ log_path: '/var/log/smartd/'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: smartd_log.read_error_rate
- description: Read Error Rate
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.seek_error_rate
- description: Seek Error Rate
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.soft_read_error_rate
- description: Soft Read Error Rate
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.write_error_rate
- description: Write Error Rate
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.read_total_err_corrected
- description: Read Error Corrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.read_total_unc_errors
- description: Read Error Uncorrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.write_total_err_corrected
- description: Write Error Corrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.write_total_unc_errors
- description: Write Error Uncorrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.verify_total_err_corrected
- description: Verify Error Corrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.verify_total_unc_errors
- description: Verify Error Uncorrected
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.sata_interface_downshift
- description: SATA Interface Downshift
- unit: "events"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.udma_crc_error_count
- description: UDMA CRC Error Count
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.throughput_performance
- description: Throughput Performance
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.seek_time_performance
- description: Seek Time Performance
- unit: "value"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.start_stop_count
- description: Start/Stop Count
- unit: "events"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.power_on_hours_count
- description: Power-On Hours Count
- unit: "hours"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.power_cycle_count
- description: Power Cycle Count
- unit: "events"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.unexpected_power_loss
- description: Unexpected Power Loss
- unit: "events"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.spin_up_time
- description: Spin-Up Time
- unit: "ms"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.spin_up_retries
- description: Spin-up Retries
- unit: "retries"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.calibration_retries
- description: Calibration Retries
- unit: "retries"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.airflow_temperature_celsius
- description: Airflow Temperature Celsius
- unit: "celsius"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.temperature_celsius
- description: Temperature
- unit: "celsius"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.reallocated_sectors_count
- description: Reallocated Sectors Count
- unit: "sectors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.reserved_block_count
- description: Reserved Block Count
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.program_fail_count
- description: Program Fail Count
- unit: "errors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.erase_fail_count
- description: Erase Fail Count
- unit: "failures"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.wear_leveller_worst_case_erase_count
- description: Wear Leveller Worst Case Erase Count
- unit: "erases"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.unused_reserved_nand_blocks
- description: Unused Reserved NAND Blocks
- unit: "blocks"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.reallocation_event_count
- description: Reallocation Event Count
- unit: "events"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.current_pending_sector_count
- description: Current Pending Sector Count
- unit: "sectors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.offline_uncorrectable_sector_count
- description: Offline Uncorrectable Sector Count
- unit: "sectors"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.percent_lifetime_used
- description: Percent Lifetime Used
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.media_wearout_indicator
- description: Media Wearout Indicator
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per device
- - name: smartd_log.nand_writes_1gib
- description: NAND Writes
- unit: "GiB"
- chart_type: line
- dimensions:
- - name: a dimension per device
+ folding:
+ title: Metrics
+ enabled: false
+ description: "The metrics listed below are split in terms of availability on device type, SCSI or ATA."
+ availability:
+ - "SCSI"
+ - "ATA"
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: smartd_log.read_error_rate
+ description: Read Error Rate
+ availability:
+ - ATA
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.seek_error_rate
+ description: Seek Error Rate
+ availability:
+ - ATA
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.soft_read_error_rate
+ description: Soft Read Error Rate
+ availability:
+ - ATA
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.write_error_rate
+ description: Write Error Rate
+ availability:
+ - ATA
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.read_total_err_corrected
+ description: Read Error Corrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.read_total_unc_errors
+ description: Read Error Uncorrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.write_total_err_corrected
+ description: Write Error Corrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.write_total_unc_errors
+ description: Write Error Uncorrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.verify_total_err_corrected
+ description: Verify Error Corrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.verify_total_unc_errors
+ description: Verify Error Uncorrected
+ availability:
+ - SCSI
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.sata_interface_downshift
+ description: SATA Interface Downshift
+ availability:
+ - ATA
+ unit: "events"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.udma_crc_error_count
+ description: UDMA CRC Error Count
+ availability:
+ - ATA
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.throughput_performance
+ description: Throughput Performance
+ availability:
+ - ATA
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.seek_time_performance
+ description: Seek Time Performance
+ availability:
+ - ATA
+ unit: "value"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.start_stop_count
+ description: Start/Stop Count
+ availability:
+ - ATA
+ unit: "events"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.power_on_hours_count
+ description: Power-On Hours Count
+ availability:
+ - ATA
+ unit: "hours"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.power_cycle_count
+ description: Power Cycle Count
+ availability:
+ - ATA
+ unit: "events"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.unexpected_power_loss
+ description: Unexpected Power Loss
+ availability:
+ - ATA
+ unit: "events"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.spin_up_time
+ description: Spin-Up Time
+ availability:
+ - ATA
+ unit: "ms"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.spin_up_retries
+ description: Spin-up Retries
+ availability:
+ - ATA
+ unit: "retries"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.calibration_retries
+ description: Calibration Retries
+ availability:
+ - ATA
+ unit: "retries"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.airflow_temperature_celsius
+ description: Airflow Temperature Celsius
+ availability:
+ - ATA
+ unit: "celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.temperature_celsius
+ description: Temperature
+ availability:
+ - SCSI
+ - ATA
+ unit: "celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.reallocated_sectors_count
+ description: Reallocated Sectors Count
+ availability:
+ - ATA
+ unit: "sectors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.reserved_block_count
+ description: Reserved Block Count
+ availability:
+ - ATA
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.program_fail_count
+ description: Program Fail Count
+ availability:
+ - ATA
+ unit: "errors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.erase_fail_count
+ description: Erase Fail Count
+ availability:
+ - ATA
+ unit: "failures"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.wear_leveller_worst_case_erase_count
+ description: Wear Leveller Worst Case Erase Count
+ availability:
+ - ATA
+ unit: "erases"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.unused_reserved_nand_blocks
+ description: Unused Reserved NAND Blocks
+ availability:
+ - ATA
+ unit: "blocks"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.reallocation_event_count
+ description: Reallocation Event Count
+ availability:
+ - ATA
+ unit: "events"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.current_pending_sector_count
+ description: Current Pending Sector Count
+ availability:
+ - ATA
+ unit: "sectors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.offline_uncorrectable_sector_count
+ description: Offline Uncorrectable Sector Count
+ availability:
+ - ATA
+ unit: "sectors"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.percent_lifetime_used
+ description: Percent Lifetime Used
+ availability:
+ - ATA
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.media_wearout_indicator
+ description: Media Wearout Indicator
+ availability:
+ - ATA
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
+ - name: smartd_log.nand_writes_1gib
+ description: NAND Writes
+ availability:
+ - ATA
+ unit: "GiB"
+ chart_type: line
+ dimensions:
+ - name: a dimension per device
diff --git a/collectors/python.d.plugin/smartd_log/metrics.csv b/collectors/python.d.plugin/smartd_log/metrics.csv
deleted file mode 100644
index 7dcc703ca..000000000
--- a/collectors/python.d.plugin/smartd_log/metrics.csv
+++ /dev/null
@@ -1,36 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-smartd_log.read_error_rate,,a dimension per device,value,Read Error Rate,line,,python.d.plugin,smartd_log
-smartd_log.seek_error_rate,,a dimension per device,value,Seek Error Rate,line,,python.d.plugin,smartd_log
-smartd_log.soft_read_error_rate,,a dimension per device,errors,Soft Read Error Rate,line,,python.d.plugin,smartd_log
-smartd_log.write_error_rate,,a dimension per device,value,Write Error Rate,line,,python.d.plugin,smartd_log
-smartd_log.read_total_err_corrected,,a dimension per device,errors,Read Error Corrected,line,,python.d.plugin,smartd_log
-smartd_log.read_total_unc_errors,,a dimension per device,errors,Read Error Uncorrected,line,,python.d.plugin,smartd_log
-smartd_log.write_total_err_corrected,,a dimension per device,errors,Write Error Corrected,line,,python.d.plugin,smartd_log
-smartd_log.write_total_unc_errors,,a dimension per device,errors,Write Error Uncorrected,line,,python.d.plugin,smartd_log
-smartd_log.verify_total_err_corrected,,a dimension per device,errors,Verify Error Corrected,line,,python.d.plugin,smartd_log
-smartd_log.verify_total_unc_errors,,a dimension per device,errors,Verify Error Uncorrected,line,,python.d.plugin,smartd_log
-smartd_log.sata_interface_downshift,,a dimension per device,events,SATA Interface Downshift,line,,python.d.plugin,smartd_log
-smartd_log.udma_crc_error_count,,a dimension per device,errors,UDMA CRC Error Count,line,,python.d.plugin,smartd_log
-smartd_log.throughput_performance,,a dimension per device,value,Throughput Performance,line,,python.d.plugin,smartd_log
-smartd_log.seek_time_performance,,a dimension per device,value,Seek Time Performance,line,,python.d.plugin,smartd_log
-smartd_log.start_stop_count,,a dimension per device,events,Start/Stop Count,line,,python.d.plugin,smartd_log
-smartd_log.power_on_hours_count,,a dimension per device,hours,Power-On Hours Count,line,,python.d.plugin,smartd_log
-smartd_log.power_cycle_count,,a dimension per device,events,Power Cycle Count,line,,python.d.plugin,smartd_log
-smartd_log.unexpected_power_loss,,a dimension per device,events,Unexpected Power Loss,line,,python.d.plugin,smartd_log
-smartd_log.spin_up_time,,a dimension per device,ms,Spin-Up Time,line,,python.d.plugin,smartd_log
-smartd_log.spin_up_retries,,a dimension per device,retries,Spin-up Retries,line,,python.d.plugin,smartd_log
-smartd_log.calibration_retries,,a dimension per device,retries,Calibration Retries,line,,python.d.plugin,smartd_log
-smartd_log.airflow_temperature_celsius,,a dimension per device,celsius,Airflow Temperature Celsius,line,,python.d.plugin,smartd_log
-smartd_log.temperature_celsius,,"a dimension per device",celsius,Temperature,line,,python.d.plugin,smartd_log
-smartd_log.reallocated_sectors_count,,a dimension per device,sectors,Reallocated Sectors Count,line,,python.d.plugin,smartd_log
-smartd_log.reserved_block_count,,a dimension per device,percentage,Reserved Block Count,line,,python.d.plugin,smartd_log
-smartd_log.program_fail_count,,a dimension per device,errors,Program Fail Count,line,,python.d.plugin,smartd_log
-smartd_log.erase_fail_count,,a dimension per device,failures,Erase Fail Count,line,,python.d.plugin,smartd_log
-smartd_log.wear_leveller_worst_case_erase_count,,a dimension per device,erases,Wear Leveller Worst Case Erase Count,line,,python.d.plugin,smartd_log
-smartd_log.unused_reserved_nand_blocks,,a dimension per device,blocks,Unused Reserved NAND Blocks,line,,python.d.plugin,smartd_log
-smartd_log.reallocation_event_count,,a dimension per device,events,Reallocation Event Count,line,,python.d.plugin,smartd_log
-smartd_log.current_pending_sector_count,,a dimension per device,sectors,Current Pending Sector Count,line,,python.d.plugin,smartd_log
-smartd_log.offline_uncorrectable_sector_count,,a dimension per device,sectors,Offline Uncorrectable Sector Count,line,,python.d.plugin,smartd_log
-smartd_log.percent_lifetime_used,,a dimension per device,percentage,Percent Lifetime Used,line,,python.d.plugin,smartd_log
-smartd_log.media_wearout_indicator,,a dimension per device,percentage,Media Wearout Indicator,line,,python.d.plugin,smartd_log
-smartd_log.nand_writes_1gib,,a dimension per device,GiB,NAND Writes,line,,python.d.plugin,smartd_log
diff --git a/collectors/python.d.plugin/spigotmc/metadata.yaml b/collectors/python.d.plugin/spigotmc/metadata.yaml
index 5446bb303..5dea9f0c8 100644
--- a/collectors/python.d.plugin/spigotmc/metadata.yaml
+++ b/collectors/python.d.plugin/spigotmc/metadata.yaml
@@ -1,88 +1,176 @@
-meta:
- plugin_name: python.d.plugin
- module_name: spigotmc
- monitored_instance:
- name: SpigotMC
- link: ''
- categories:
- - data-collection.gaming
- icon_filename: 'spigot.jfif'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor SpigotMC performance with Netdata for optimal Minecraft server operations. Improve your gaming experience with real-time server performance insights.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: spigotmc
+ monitored_instance:
+ name: SpigotMC
+ link: ""
+ categories:
+ - data-collection.gaming
+ icon_filename: "spigot.jfif"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - minecraft server
+ - spigotmc server
+ - spigot
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors SpigotMC server performance, in the form of ticks per second average, memory utilization, and active users.
+ method_description: |
+ It sends the `tps`, `list` and `online` commands to the Server, and gathers the metrics from the responses.
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: By default, this collector will attempt to connect to a Spigot server running on the local host on port `25575`.
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Enable the Remote Console Protocol
+ description: |
+ Under your SpigotMC server's `server.properties` configuration file, you should set `enable-rcon` to `true`.
+
+ This will allow the Server to listen and respond to queries over the rcon protocol.
+ configuration:
+ file:
+ name: "python.d/spigotmc.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed
+ running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: host
+ description: The host's IP to connect to.
+ default_value: localhost
+ required: true
+ - name: port
+ description: The port the remote console is listening on.
+ default_value: 25575
+ required: true
+ - name: password
+ description: Remote console password if any.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ folding:
+ enabled: false
+ config: |
+ local:
+ name: local_server
+ url: 127.0.0.1
+ port: 25575
+ - name: Basic Authentication
+ description: An example using basic password for authentication with the remote console.
+ config: |
+ local:
+ name: local_server_pass
+ url: 127.0.0.1
+ port: 25575
+ password: 'foobar'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ local_server:
+ name : my_local_server
+ url : 127.0.0.1
+ port: 25575
+
+ remote_server:
+ name : another_remote_server
+ url : 192.0.2.1
+ port: 25575
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: spigotmc.tps
- description: Spigot Ticks Per Second
- unit: "ticks"
- chart_type: line
- dimensions:
- - name: 1 Minute Average
- - name: 5 Minute Average
- - name: 15 Minute Average
- - name: spigotmc.users
- description: Minecraft Users
- unit: "users"
- chart_type: area
- dimensions:
- - name: Users
- - name: spigotmc.mem
- description: Minecraft Memory Usage
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: used
- - name: allocated
- - name: max
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: spigotmc.tps
+ description: Spigot Ticks Per Second
+ unit: "ticks"
+ chart_type: line
+ dimensions:
+ - name: 1 Minute Average
+ - name: 5 Minute Average
+ - name: 15 Minute Average
+ - name: spigotmc.users
+ description: Minecraft Users
+ unit: "users"
+ chart_type: area
+ dimensions:
+ - name: Users
+ - name: spigotmc.mem
+ description: Minecraft Memory Usage
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: allocated
+ - name: max
diff --git a/collectors/python.d.plugin/spigotmc/metrics.csv b/collectors/python.d.plugin/spigotmc/metrics.csv
deleted file mode 100644
index 8d040b959..000000000
--- a/collectors/python.d.plugin/spigotmc/metrics.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-spigotmc.tps,,"1 Minute Average, 5 Minute Average, 15 Minute Average",ticks,Spigot Ticks Per Second,line,,python.d.plugin,spigotmc
-spigotmc.users,,Users,users,Minecraft Users,area,,python.d.plugin,spigotmc
-spigotmc.mem,,"used, allocated, max",MiB,Minecraft Memory Usage,line,,python.d.plugin,spigotmc
diff --git a/collectors/python.d.plugin/squid/metadata.yaml b/collectors/python.d.plugin/squid/metadata.yaml
index 736a2204a..d0c5b3ecc 100644
--- a/collectors/python.d.plugin/squid/metadata.yaml
+++ b/collectors/python.d.plugin/squid/metadata.yaml
@@ -1,96 +1,174 @@
-meta:
- plugin_name: python.d.plugin
- module_name: squid
- monitored_instance:
- name: Squid
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'squid.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Squid metrics with Netdata for efficient caching proxy for the Web performance. Improve your web caching efficiency with real-time Squid metrics.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: squid instance
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: squid
+ monitored_instance:
+ name: Squid
+ link: "http://www.squid-cache.org/"
+ categories:
+ - data-collection.web-servers-and-web-proxies
+ icon_filename: "squid.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - squid
+ - web delivery
+ - squid caching proxy
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors statistics about the Squid Clients and Servers, like bandwidth and requests.
+ method_description: "It collects metrics from the endpoint where Squid exposes its `counters` data."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "By default, this collector will try to autodetect where Squid presents its `counters` data, by trying various configurations."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Configure Squid's Cache Manager
+ description: |
+ Take a look at [Squid's official documentation](https://wiki.squid-cache.org/Features/CacheManager/Index#controlling-access-to-the-cache-manager) on how to configure access to the Cache Manager.
+ configuration:
+ file:
+ name: "python.d/squid.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 1
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: >
+ Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: "local"
+ required: false
+ - name: host
+ description: The host to connect to.
+ default_value: ""
+ required: true
+ - name: port
+ description: The port to connect to.
+ default_value: ""
+ required: true
+ - name: request
+ description: The URL to request from Squid.
+ default_value: ""
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ folding:
+ enabled: false
+ config: |
+ example_job_name:
+ name: 'local'
+ host: 'localhost'
+ port: 3128
+ request: 'cache_object://localhost:3128/counters'
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ local_job:
+ name: 'local'
+ host: '127.0.0.1'
+ port: 3128
+ request: 'cache_object://127.0.0.1:3128/counters'
+
+ remote_job:
+ name: 'remote'
+ host: '192.0.2.1'
+ port: 3128
+ request: 'cache_object://192.0.2.1:3128/counters'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: squid.clients_net
- description: Squid Client Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: hits
- - name: squid.clients_requests
- description: Squid Client Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: hits
- - name: errors
- - name: squid.servers_net
- description: Squid Server Bandwidth
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: in
- - name: out
- - name: squid.servers_requests
- description: Squid Server Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: errors
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: Squid instance
+ description: "These metrics refer to each monitored Squid instance."
+ labels: []
+ metrics:
+ - name: squid.clients_net
+ description: Squid Client Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: hits
+ - name: squid.clients_requests
+ description: Squid Client Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: hits
+ - name: errors
+ - name: squid.servers_net
+ description: Squid Server Bandwidth
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: in
+ - name: out
+ - name: squid.servers_requests
+ description: Squid Server Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: errors
diff --git a/collectors/python.d.plugin/squid/metrics.csv b/collectors/python.d.plugin/squid/metrics.csv
deleted file mode 100644
index c2899f2e9..000000000
--- a/collectors/python.d.plugin/squid/metrics.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-squid.clients_net,squid instance,"in, out, hits",kilobits/s,Squid Client Bandwidth,area,,python.d.plugin,squid
-squid.clients_requests,squid instance,"requests, hits, errors",requests/s,Squid Client Requests,line,,python.d.plugin,squid
-squid.servers_net,squid instance,"in, out",kilobits/s,Squid Server Bandwidth,area,,python.d.plugin,squid
-squid.servers_requests,squid instance,"requests, errors",requests/s,Squid Server Requests,line,,python.d.plugin,squid
diff --git a/collectors/python.d.plugin/tomcat/metadata.yaml b/collectors/python.d.plugin/tomcat/metadata.yaml
index 4f2a2b0e4..c22f4f58b 100644
--- a/collectors/python.d.plugin/tomcat/metadata.yaml
+++ b/collectors/python.d.plugin/tomcat/metadata.yaml
@@ -1,129 +1,200 @@
-meta:
- plugin_name: python.d.plugin
- module_name: tomcat
- monitored_instance:
- name: Tomcat
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'tomcat.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Tomcat performance with Netdata for optimal Java servlet container operations. Improve your web application performance with real-time Tomcat metrics.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: tomcat
+ monitored_instance:
+ name: Tomcat
+ link: "https://tomcat.apache.org/"
+ categories:
+ - data-collection.web-servers-and-web-proxies
+ icon_filename: "tomcat.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - apache
+ - tomcat
+ - webserver
+ - websocket
+ - jakarta
+ - javaEE
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors Tomcat metrics about bandwidth, processing time, threads and more.
+ method_description: |
+ It parses the information provided by the http endpoint of the `/manager/status` in XML format
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "You need to provide the username and the password, to access the webserver's status page. Create a seperate user with read only rights for this particular endpoint"
+ default_behavior:
+ auto_detection:
+ description: "If the Netdata Agent and the Tomcat webserver are in the same host, without configuration, module attempts to connect to http://localhost:8080/manager/status?XML=true, without any credentials. So it will probably fail."
+ limits:
+ description: "This module is not supporting SSL communication. If you want a Netdata Agent to monitor a Tomcat deployment, you shouldnt try to monitor it via public network (public internet). Credentials are passed by Netdata in an unsecure port"
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Create a read-only `netdata` user, to monitor the `/status` endpoint.
+ description: You will need this configuring the collector
+ configuration:
+ file:
+ name: "python.d/tomcat.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options per job"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: url
+ description: The URL of the Tomcat server's status endpoint. Always add the suffix ?XML=true.
+ default_value: no
+ required: true
+ - name: user
+ description: A valid user with read permission to access the /manager/status endpoint of the server. Required if the endpoint is password protected
+ default_value: no
+ required: false
+ - name: pass
+ description: A valid password for the user in question. Required if the endpoint is password protected
+ default_value: no
+ required: false
+ - name: connector_name
+ description: The connector component that communicates with a web connector via the AJP protocol, e.g ajp-bio-8009
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ folding:
+ enabled: false
+ description: A basic example configuration
+ config: |
+ localhost:
+ name : 'local'
+ url : 'http://localhost:8080/manager/status?XML=true'
+ - name: Using an IPv4 endpoint
+ description: A typical configuration using an IPv4 endpoint
+ config: |
+ local_ipv4:
+ name : 'local'
+ url : 'http://127.0.0.1:8080/manager/status?XML=true'
+ - name: Using an IPv6 endpoint
+ description: A typical configuration using an IPv6 endpoint
+ config: |
+ local_ipv6:
+ name : 'local'
+ url : 'http://[::1]:8080/manager/status?XML=true'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: tomcat.accesses
- description: Requests
- unit: "requests/s"
- chart_type: area
- dimensions:
- - name: accesses
- - name: errors
- - name: tomcat.bandwidth
- description: Bandwidth
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: sent
- - name: received
- - name: tomcat.processing_time
- description: processing time
- unit: "seconds"
- chart_type: area
- dimensions:
- - name: processing time
- - name: tomcat.threads
- description: Threads
- unit: "current threads"
- chart_type: area
- dimensions:
- - name: current
- - name: busy
- - name: tomcat.jvm
- description: JVM Memory Pool Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: eden
- - name: survivor
- - name: tenured
- - name: code cache
- - name: compressed
- - name: metaspace
- - name: tomcat.jvm_eden
- description: Eden Memory Usage
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: used
- - name: committed
- - name: max
- - name: tomcat.jvm_survivor
- description: Survivor Memory Usage
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: used
- - name: committed
- - name: max
- - name: tomcat.jvm_tenured
- description: Tenured Memory Usage
- unit: "MiB"
- chart_type: area
- dimensions:
- - name: used
- - name: committed
- - name: max
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: tomcat.accesses
+ description: Requests
+ unit: "requests/s"
+ chart_type: area
+ dimensions:
+ - name: accesses
+ - name: errors
+ - name: tomcat.bandwidth
+ description: Bandwidth
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: sent
+ - name: received
+ - name: tomcat.processing_time
+ description: processing time
+ unit: "seconds"
+ chart_type: area
+ dimensions:
+ - name: processing time
+ - name: tomcat.threads
+ description: Threads
+ unit: "current threads"
+ chart_type: area
+ dimensions:
+ - name: current
+ - name: busy
+ - name: tomcat.jvm
+ description: JVM Memory Pool Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: eden
+ - name: survivor
+ - name: tenured
+ - name: code cache
+ - name: compressed
+ - name: metaspace
+ - name: tomcat.jvm_eden
+ description: Eden Memory Usage
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: used
+ - name: committed
+ - name: max
+ - name: tomcat.jvm_survivor
+ description: Survivor Memory Usage
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: used
+ - name: committed
+ - name: max
+ - name: tomcat.jvm_tenured
+ description: Tenured Memory Usage
+ unit: "MiB"
+ chart_type: area
+ dimensions:
+ - name: used
+ - name: committed
+ - name: max
diff --git a/collectors/python.d.plugin/tomcat/metrics.csv b/collectors/python.d.plugin/tomcat/metrics.csv
deleted file mode 100644
index 6769fa3f8..000000000
--- a/collectors/python.d.plugin/tomcat/metrics.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-tomcat.accesses,,"accesses, errors",requests/s,Requests,area,,python.d.plugin,tomcat
-tomcat.bandwidth,,"sent, received",KiB/s,Bandwidth,area,,python.d.plugin,tomcat
-tomcat.processing_time,,processing time,seconds,processing time,area,,python.d.plugin,tomcat
-tomcat.threads,,"current, busy",current threads,Threads,area,,python.d.plugin,tomcat
-tomcat.jvm,,"free, eden, survivor, tenured, code cache, compressed, metaspace",MiB,JVM Memory Pool Usage,stacked,,python.d.plugin,tomcat
-tomcat.jvm_eden,,"used, committed, max",MiB,Eden Memory Usage,area,,python.d.plugin,tomcat
-tomcat.jvm_survivor,,"used, committed, max",MiB,Survivor Memory Usage,area,,python.d.plugin,tomcat
-tomcat.jvm_tenured,,"used, committed, max",MiB,Tenured Memory Usage,area,,python.d.plugin,tomcat
diff --git a/collectors/python.d.plugin/tor/metadata.yaml b/collectors/python.d.plugin/tor/metadata.yaml
index 7d02b2d71..d0ecc1a43 100644
--- a/collectors/python.d.plugin/tor/metadata.yaml
+++ b/collectors/python.d.plugin/tor/metadata.yaml
@@ -1,73 +1,140 @@
-meta:
- plugin_name: python.d.plugin
- module_name: tor
- monitored_instance:
- name: Tor
- link: ''
- categories:
- - data-collection.vpns
- icon_filename: 'tor.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Tor metrics with Netdata for efficient anonymous communication operations. Enhance your anonymous communication with real-time insights and alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: tor
+ monitored_instance:
+ name: Tor
+ link: 'https://www.torproject.org/'
+ categories:
+ - data-collection.vpns
+ icon_filename: 'tor.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - tor
+ - traffic
+ - vpn
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: 'This collector monitors Tor bandwidth traffic .'
+ method_description: 'It connects to the Tor control port to collect traffic statistics.'
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ''
+ default_behavior:
+ auto_detection:
+ description: 'If no configuration is provided the collector will try to connect to 127.0.0.1:9051 to detect a running tor instance.'
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: 'Required Tor configuration'
+ description: |
+ Add to /etc/tor/torrc:
+
+ ControlPort 9051
+
+ For more options please read the manual.
+ configuration:
+ file:
+ name: python.d/tor.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ - name: control_addr
+ description: Tor control IP address
+ default_value: 127.0.0.1
+ required: false
+ - name: control_port
+ description: Tor control port. Can be either a tcp port, or a path to a socket file.
+ default_value: 9051
+ required: false
+ - name: password
+ description: Tor control password
+ default_value: ''
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Local TCP
+ description: A basic TCP configuration. `local_addr` is ommited and will default to `127.0.0.1`
+ config: |
+ local_tcp:
+ name: 'local'
+ control_port: 9051
+ password: # if required
+ - name: Local socket
+ description: A basic local socket configuration
+ config: |
+ local_socket:
+ name: 'local'
+ control_port: '/var/run/tor/control'
+ password: # if required
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: tor.traffic
- description: Tor Traffic
- unit: "KiB/s"
- chart_type: area
- dimensions:
- - name: read
- - name: write
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: tor.traffic
+ description: Tor Traffic
+ unit: "KiB/s"
+ chart_type: area
+ dimensions:
+ - name: read
+ - name: write
diff --git a/collectors/python.d.plugin/tor/metrics.csv b/collectors/python.d.plugin/tor/metrics.csv
deleted file mode 100644
index 62402d8d7..000000000
--- a/collectors/python.d.plugin/tor/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-tor.traffic,,"read, write",KiB/s,Tor Traffic,area,,python.d.plugin,tor
diff --git a/collectors/python.d.plugin/traefik/metadata.yaml b/collectors/python.d.plugin/traefik/metadata.yaml
index b817d4228..dcfb098a0 100644
--- a/collectors/python.d.plugin/traefik/metadata.yaml
+++ b/collectors/python.d.plugin/traefik/metadata.yaml
@@ -1,122 +1,125 @@
-meta:
- plugin_name: python.d.plugin
- module_name: traefik
- monitored_instance:
- name: python.d traefik
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: traefik.response_statuses
- description: Response statuses
- unit: "requests/s"
- chart_type: stacked
- dimensions:
- - name: success
- - name: error
- - name: redirect
- - name: bad
- - name: other
- - name: traefik.response_codes
- description: Responses by codes
- unit: "requests/s"
- chart_type: stacked
- dimensions:
- - name: 2xx
- - name: 5xx
- - name: 3xx
- - name: 4xx
- - name: 1xx
- - name: other
- - name: traefik.detailed_response_codes
- description: Detailed response codes
- unit: "requests/s"
- chart_type: stacked
- dimensions:
- - name: a dimension for each response code family
- - name: traefik.requests
- description: Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: traefik.total_response_time
- description: Total response time
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: response
- - name: traefik.average_response_time
- description: Average response time
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: response
- - name: traefik.average_response_time_per_iteration
- description: Average response time per iteration
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: response
- - name: traefik.uptime
- description: Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
+# This collector will not appear in documentation, as the go version is preferred,
+# https://github.com/netdata/go.d.plugin/blob/master/modules/traefik/README.md
+#
+# meta:
+# plugin_name: python.d.plugin
+# module_name: traefik
+# monitored_instance:
+# name: python.d traefik
+# link: ''
+# categories: []
+# icon_filename: ''
+# related_resources:
+# integrations:
+# list: []
+# info_provided_to_referring_integrations:
+# description: ''
+# keywords: []
+# most_popular: false
+# overview:
+# data_collection:
+# metrics_description: ''
+# method_description: ''
+# supported_platforms:
+# include: []
+# exclude: []
+# multi_instance: true
+# additional_permissions:
+# description: ''
+# default_behavior:
+# auto_detection:
+# description: ''
+# limits:
+# description: ''
+# performance_impact:
+# description: ''
+# setup:
+# prerequisites:
+# list: []
+# configuration:
+# file:
+# name: ''
+# description: ''
+# options:
+# description: ''
+# folding:
+# title: ''
+# enabled: true
+# list: []
+# examples:
+# folding:
+# enabled: true
+# title: ''
+# list: []
+# troubleshooting:
+# problems:
+# list: []
+# alerts: []
+# metrics:
+# folding:
+# title: Metrics
+# enabled: false
+# description: ""
+# availability: []
+# scopes:
+# - name: global
+# description: ""
+# labels: []
+# metrics:
+# - name: traefik.response_statuses
+# description: Response statuses
+# unit: "requests/s"
+# chart_type: stacked
+# dimensions:
+# - name: success
+# - name: error
+# - name: redirect
+# - name: bad
+# - name: other
+# - name: traefik.response_codes
+# description: Responses by codes
+# unit: "requests/s"
+# chart_type: stacked
+# dimensions:
+# - name: 2xx
+# - name: 5xx
+# - name: 3xx
+# - name: 4xx
+# - name: 1xx
+# - name: other
+# - name: traefik.detailed_response_codes
+# description: Detailed response codes
+# unit: "requests/s"
+# chart_type: stacked
+# dimensions:
+# - name: a dimension for each response code family
+# - name: traefik.requests
+# description: Requests
+# unit: "requests/s"
+# chart_type: line
+# dimensions:
+# - name: requests
+# - name: traefik.total_response_time
+# description: Total response time
+# unit: "seconds"
+# chart_type: line
+# dimensions:
+# - name: response
+# - name: traefik.average_response_time
+# description: Average response time
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: response
+# - name: traefik.average_response_time_per_iteration
+# description: Average response time per iteration
+# unit: "milliseconds"
+# chart_type: line
+# dimensions:
+# - name: response
+# - name: traefik.uptime
+# description: Uptime
+# unit: "seconds"
+# chart_type: line
+# dimensions:
+# - name: uptime
diff --git a/collectors/python.d.plugin/traefik/metrics.csv b/collectors/python.d.plugin/traefik/metrics.csv
deleted file mode 100644
index 77e1c2949..000000000
--- a/collectors/python.d.plugin/traefik/metrics.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-traefik.response_statuses,,"success, error, redirect, bad, other",requests/s,Response statuses,stacked,,python.d.plugin,traefik
-traefik.response_codes,,"2xx, 5xx, 3xx, 4xx, 1xx, other",requests/s,Responses by codes,stacked,,python.d.plugin,traefik
-traefik.detailed_response_codes,,a dimension for each response code family,requests/s,Detailed response codes,stacked,,python.d.plugin,traefik
-traefik.requests,,requests,requests/s,Requests,line,,python.d.plugin,traefik
-traefik.total_response_time,,response,seconds,Total response time,line,,python.d.plugin,traefik
-traefik.average_response_time,,response,milliseconds,Average response time,line,,python.d.plugin,traefik
-traefik.average_response_time_per_iteration,,response,milliseconds,Average response time per iteration,line,,python.d.plugin,traefik
-traefik.uptime,,uptime,seconds,Uptime,line,,python.d.plugin,traefik
diff --git a/collectors/python.d.plugin/uwsgi/metadata.yaml b/collectors/python.d.plugin/uwsgi/metadata.yaml
index 3447f5328..cdb090ac1 100644
--- a/collectors/python.d.plugin/uwsgi/metadata.yaml
+++ b/collectors/python.d.plugin/uwsgi/metadata.yaml
@@ -1,114 +1,201 @@
-meta:
- plugin_name: python.d.plugin
- module_name: uwsgi
- monitored_instance:
- name: uWSGI
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'uwsgi.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor uWSGI performance for optimal application server operations. Monitor request rates, worker statuses, and error rates to ensure efficient application delivery.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: uwsgi
+ monitored_instance:
+ name: uWSGI
+ link: "https://github.com/unbit/uwsgi/tree/2.0.21"
+ categories:
+ - data-collection.web-servers-and-web-proxies
+ icon_filename: "uwsgi.svg"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - application server
+ - python
+ - web applications
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors uWSGI metrics about requests, workers, memory and more."
+ method_description: "It collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP socket."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "This collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Enable the uWSGI Stats server
+ description: |
+ Make sure that you uWSGI exposes it's metrics via a Stats server.
+
+ Source: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html
+ configuration:
+ file:
+ name: "python.d/uwsgi.conf"
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: The JOB's name as it will appear at the dashboard (by default is the job_name)
+ default_value: job_name
+ required: false
+ - name: socket
+ description: The 'path/to/uwsgistats.sock'
+ default_value: no
+ required: false
+ - name: host
+ description: The host to connect to
+ default_value: no
+ required: false
+ - name: port
+ description: The port to connect to
+ default_value: no
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic (default out-of-the-box)
+ description: A basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time.
+ config: |
+ socket:
+ name : 'local'
+ socket : '/tmp/stats.socket'
+
+ localhost:
+ name : 'local'
+ host : 'localhost'
+ port : 1717
+
+ localipv4:
+ name : 'local'
+ host : '127.0.0.1'
+ port : 1717
+
+ localipv6:
+ name : 'local'
+ host : '::1'
+ port : 1717
+ - name: Multi-instance
+ description: |
+ > **Note**: When you define multiple jobs, their names must be unique.
+
+ Collecting metrics from local and remote instances.
+ config: |
+ local:
+ name : 'local'
+ host : 'localhost'
+ port : 1717
+
+ remote:
+ name : 'remote'
+ host : '192.0.2.1'
+ port : 1717
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: uwsgi.requests
- description: Requests
- unit: "requests/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per worker
- - name: uwsgi.tx
- description: Transmitted data
- unit: "KiB/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per worker
- - name: uwsgi.avg_rt
- description: Average request time
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: a dimension per worker
- - name: uwsgi.memory_rss
- description: RSS (Resident Set Size)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per worker
- - name: uwsgi.memory_vsz
- description: VSZ (Virtual Memory Size)
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: a dimension per worker
- - name: uwsgi.exceptions
- description: Exceptions
- unit: "exceptions"
- chart_type: line
- dimensions:
- - name: exceptions
- - name: uwsgi.harakiris
- description: Harakiris
- unit: "harakiris"
- chart_type: line
- dimensions:
- - name: harakiris
- - name: uwsgi.respawns
- description: Respawns
- unit: "respawns"
- chart_type: line
- dimensions:
- - name: respawns
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: uwsgi.requests
+ description: Requests
+ unit: "requests/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per worker
+ - name: uwsgi.tx
+ description: Transmitted data
+ unit: "KiB/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per worker
+ - name: uwsgi.avg_rt
+ description: Average request time
+ unit: "milliseconds"
+ chart_type: line
+ dimensions:
+ - name: a dimension per worker
+ - name: uwsgi.memory_rss
+ description: RSS (Resident Set Size)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per worker
+ - name: uwsgi.memory_vsz
+ description: VSZ (Virtual Memory Size)
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per worker
+ - name: uwsgi.exceptions
+ description: Exceptions
+ unit: "exceptions"
+ chart_type: line
+ dimensions:
+ - name: exceptions
+ - name: uwsgi.harakiris
+ description: Harakiris
+ unit: "harakiris"
+ chart_type: line
+ dimensions:
+ - name: harakiris
+ - name: uwsgi.respawns
+ description: Respawns
+ unit: "respawns"
+ chart_type: line
+ dimensions:
+ - name: respawns
diff --git a/collectors/python.d.plugin/uwsgi/metrics.csv b/collectors/python.d.plugin/uwsgi/metrics.csv
deleted file mode 100644
index c974653f5..000000000
--- a/collectors/python.d.plugin/uwsgi/metrics.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-uwsgi.requests,,a dimension per worker,requests/s,Requests,stacked,,python.d.plugin,uwsgi
-uwsgi.tx,,a dimension per worker,KiB/s,Transmitted data,stacked,,python.d.plugin,uwsgi
-uwsgi.avg_rt,,a dimension per worker,milliseconds,Average request time,line,,python.d.plugin,uwsgi
-uwsgi.memory_rss,,a dimension per worker,MiB,RSS (Resident Set Size),stacked,,python.d.plugin,uwsgi
-uwsgi.memory_vsz,,a dimension per worker,MiB,VSZ (Virtual Memory Size),stacked,,python.d.plugin,uwsgi
-uwsgi.exceptions,,exceptions,exceptions,Exceptions,line,,python.d.plugin,uwsgi
-uwsgi.harakiris,,harakiris,harakiris,Harakiris,line,,python.d.plugin,uwsgi
-uwsgi.respawns,,respawns,respawns,Respawns,line,,python.d.plugin,uwsgi
diff --git a/collectors/python.d.plugin/varnish/metadata.yaml b/collectors/python.d.plugin/varnish/metadata.yaml
index 267279fab..aa245c25f 100644
--- a/collectors/python.d.plugin/varnish/metadata.yaml
+++ b/collectors/python.d.plugin/varnish/metadata.yaml
@@ -1,192 +1,253 @@
-meta:
- plugin_name: python.d.plugin
- module_name: varnish
- monitored_instance:
- name: Varnish
- link: ''
- categories:
- - data-collection.web-servers-and-web-proxies
- icon_filename: 'varnish.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Varnish metrics with Netdata for efficient HTTP accelerator performance. Enhance your web performance with real-time Varnish metrics.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: varnish.session_connection
- description: Connections Statistics
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: accepted
- - name: dropped
- - name: varnish.client_requests
- description: Client Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: received
- - name: varnish.all_time_hit_rate
- description: All History Hit Rate Ratio
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hit
- - name: miss
- - name: hitpass
- - name: varnish.current_poll_hit_rate
- description: Current Poll Hit Rate Ratio
- unit: "percentage"
- chart_type: stacked
- dimensions:
- - name: hit
- - name: miss
- - name: hitpass
- - name: varnish.cached_objects_expired
- description: Expired Objects
- unit: "expired/s"
- chart_type: line
- dimensions:
- - name: objects
- - name: varnish.cached_objects_nuked
- description: Least Recently Used Nuked Objects
- unit: "nuked/s"
- chart_type: line
- dimensions:
- - name: objects
- - name: varnish.threads_total
- description: Number Of Threads In All Pools
- unit: "number"
- chart_type: line
- dimensions:
- - name: None
- - name: varnish.threads_statistics
- description: Threads Statistics
- unit: "threads/s"
- chart_type: line
- dimensions:
- - name: created
- - name: failed
- - name: limited
- - name: varnish.threads_queue_len
- description: Current Queue Length
- unit: "requests"
- chart_type: line
- dimensions:
- - name: in queue
- - name: varnish.backend_connections
- description: Backend Connections Statistics
- unit: "connections/s"
- chart_type: line
- dimensions:
- - name: successful
- - name: unhealthy
- - name: reused
- - name: closed
- - name: recycled
- - name: failed
- - name: varnish.backend_requests
- description: Requests To The Backend
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: sent
- - name: varnish.esi_statistics
- description: ESI Statistics
- unit: "problems/s"
- chart_type: line
- dimensions:
- - name: errors
- - name: warnings
- - name: varnish.memory_usage
- description: Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: allocated
- - name: varnish.uptime
- description: Uptime
- unit: "seconds"
- chart_type: line
- dimensions:
- - name: uptime
- - name: Backend
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: varnish
+ monitored_instance:
+ name: Varnish
+ link: https://varnish-cache.org/
+ categories:
+ - data-collection.web-servers-and-web-proxies
+ icon_filename: 'varnish.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ''
+ keywords:
+ - varnish
+ - varnishstat
+ - varnishd
+ - cache
+ - web server
+ - web cache
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ This collector monitors Varnish metrics about HTTP accelerator global, Backends (VBE) and Storages (SMF, SMA, MSE) statistics.
+
+ Note that both, Varnish-Cache (free and open source) and Varnish-Plus (Commercial/Enterprise version), are supported.
+ method_description: |
+ It uses the `varnishstat` tool in order to collect the metrics.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: |
+ `netdata` user must be a member of the `varnish` group.
+ default_behavior:
+ auto_detection:
+ description: By default, if the permissions are satisfied, the `varnishstat` tool will be executed on the host.
+ limits:
+ description: ''
+ performance_impact:
+ description: ''
+ setup:
+ prerequisites:
+ list:
+ - title: Provide the necessary permissions
+ description: |
+ In order for the collector to work, you need to add the `netdata` user to the `varnish` user group, so that it can execute the `varnishstat` tool:
+
+ ```
+ usermod -aG varnish netdata
+ ```
+ configuration:
+ file:
+ name: python.d/varnish.conf
+ description: ''
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: Config options
+ enabled: true
+ list:
+ - name: instance_name
+ description: the name of the varnishd instance to get logs from. If not specified, the host name is used.
+ default_value: ''
+ required: true
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 10
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ''
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: 'Config'
+ list:
+ - name: Basic
+ description: An example configuration.
+ folding:
+ enabled: false
+ config: |
+ job_name:
+ instance_name: ''
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: varnish.backend
- description: Backend {backend_name}
- unit: "kilobits/s"
- chart_type: area
- dimensions:
- - name: header
- - name: body
- - name: Storage
- description: ""
- labels: []
- metrics:
- - name: varnish.storage_usage
- description: Storage {storage_name} Usage
- unit: "KiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: allocated
- - name: varnish.storage_alloc_objs
- description: Storage {storage_name} Allocated Objects
- unit: "objects"
- chart_type: line
- dimensions:
- - name: allocated
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: varnish.session_connection
+ description: Connections Statistics
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: accepted
+ - name: dropped
+ - name: varnish.client_requests
+ description: Client Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: varnish.all_time_hit_rate
+ description: All History Hit Rate Ratio
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hit
+ - name: miss
+ - name: hitpass
+ - name: varnish.current_poll_hit_rate
+ description: Current Poll Hit Rate Ratio
+ unit: "percentage"
+ chart_type: stacked
+ dimensions:
+ - name: hit
+ - name: miss
+ - name: hitpass
+ - name: varnish.cached_objects_expired
+ description: Expired Objects
+ unit: "expired/s"
+ chart_type: line
+ dimensions:
+ - name: objects
+ - name: varnish.cached_objects_nuked
+ description: Least Recently Used Nuked Objects
+ unit: "nuked/s"
+ chart_type: line
+ dimensions:
+ - name: objects
+ - name: varnish.threads_total
+ description: Number Of Threads In All Pools
+ unit: "number"
+ chart_type: line
+ dimensions:
+ - name: None
+ - name: varnish.threads_statistics
+ description: Threads Statistics
+ unit: "threads/s"
+ chart_type: line
+ dimensions:
+ - name: created
+ - name: failed
+ - name: limited
+ - name: varnish.threads_queue_len
+ description: Current Queue Length
+ unit: "requests"
+ chart_type: line
+ dimensions:
+ - name: in queue
+ - name: varnish.backend_connections
+ description: Backend Connections Statistics
+ unit: "connections/s"
+ chart_type: line
+ dimensions:
+ - name: successful
+ - name: unhealthy
+ - name: reused
+ - name: closed
+ - name: recycled
+ - name: failed
+ - name: varnish.backend_requests
+ description: Requests To The Backend
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: sent
+ - name: varnish.esi_statistics
+ description: ESI Statistics
+ unit: "problems/s"
+ chart_type: line
+ dimensions:
+ - name: errors
+ - name: warnings
+ - name: varnish.memory_usage
+ description: Memory Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: allocated
+ - name: varnish.uptime
+ description: Uptime
+ unit: "seconds"
+ chart_type: line
+ dimensions:
+ - name: uptime
+ - name: Backend
+ description: ""
+ labels: []
+ metrics:
+ - name: varnish.backend
+ description: Backend {backend_name}
+ unit: "kilobits/s"
+ chart_type: area
+ dimensions:
+ - name: header
+ - name: body
+ - name: Storage
+ description: ""
+ labels: []
+ metrics:
+ - name: varnish.storage_usage
+ description: Storage {storage_name} Usage
+ unit: "KiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: allocated
+ - name: varnish.storage_alloc_objs
+ description: Storage {storage_name} Allocated Objects
+ unit: "objects"
+ chart_type: line
+ dimensions:
+ - name: allocated
diff --git a/collectors/python.d.plugin/varnish/metrics.csv b/collectors/python.d.plugin/varnish/metrics.csv
deleted file mode 100644
index bafb9fd17..000000000
--- a/collectors/python.d.plugin/varnish/metrics.csv
+++ /dev/null
@@ -1,18 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-varnish.session_connection,,"accepted, dropped",connections/s,Connections Statistics,line,,python.d.plugin,varnish
-varnish.client_requests,,received,requests/s,Client Requests,line,,python.d.plugin,varnish
-varnish.all_time_hit_rate,,"hit, miss, hitpass",percentage,All History Hit Rate Ratio,stacked,,python.d.plugin,varnish
-varnish.current_poll_hit_rate,,"hit, miss, hitpass",percentage,Current Poll Hit Rate Ratio,stacked,,python.d.plugin,varnish
-varnish.cached_objects_expired,,objects,expired/s,Expired Objects,line,,python.d.plugin,varnish
-varnish.cached_objects_nuked,,objects,nuked/s,Least Recently Used Nuked Objects,line,,python.d.plugin,varnish
-varnish.threads_total,,None,number,Number Of Threads In All Pools,line,,python.d.plugin,varnish
-varnish.threads_statistics,,"created, failed, limited",threads/s,Threads Statistics,line,,python.d.plugin,varnish
-varnish.threads_queue_len,,in queue,requests,Current Queue Length,line,,python.d.plugin,varnish
-varnish.backend_connections,,"successful, unhealthy, reused, closed, recycled, failed",connections/s,Backend Connections Statistics,line,,python.d.plugin,varnish
-varnish.backend_requests,,sent,requests/s,Requests To The Backend,line,,python.d.plugin,varnish
-varnish.esi_statistics,,"errors, warnings",problems/s,ESI Statistics,line,,python.d.plugin,varnish
-varnish.memory_usage,,"free, allocated",MiB,Memory Usage,stacked,,python.d.plugin,varnish
-varnish.uptime,,uptime,seconds,Uptime,line,,python.d.plugin,varnish
-varnish.backend,Backend,"header, body",kilobits/s,Backend {backend_name},area,,python.d.plugin,varnish
-varnish.storage_usage,Storage,"free, allocated",KiB,Storage {storage_name} Usage,stacked,,python.d.plugin,varnish
-varnish.storage_alloc_objs,Storage,allocated,objects,Storage {storage_name} Allocated Objects,line,,python.d.plugin,varnish
diff --git a/collectors/python.d.plugin/w1sensor/metadata.yaml b/collectors/python.d.plugin/w1sensor/metadata.yaml
index 5d495fe59..7b0768237 100644
--- a/collectors/python.d.plugin/w1sensor/metadata.yaml
+++ b/collectors/python.d.plugin/w1sensor/metadata.yaml
@@ -1,72 +1,119 @@
-meta:
- plugin_name: python.d.plugin
- module_name: w1sensor
- monitored_instance:
- name: 1-Wire Sensors
- link: ''
- categories:
- - data-collection.hardware-devices-and-sensors
- icon_filename: '1-wire.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: w1sensor
+ monitored_instance:
+ name: 1-Wire Sensors
+ link: "https://www.analog.com/en/product-category/1wire-temperature-sensors.html"
+ categories:
+ - data-collection.hardware-devices-and-sensors
+ icon_filename: "1-wire.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - temperature
+ - sensor
+ - 1-wire
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Monitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts."
+ method_description: "The collector uses the wire, w1_gpio, and w1_therm kernel modules. Currently temperature sensors are supported and automatically detected."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: "The collector will try to auto detect available 1-Wire devices."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: "Required Linux kernel modules"
+ description: "Make sure `wire`, `w1_gpio`, and `w1_therm` kernel modules are loaded."
+ configuration:
+ file:
+ name: python.d/w1sensor.conf
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ - name: name
+ description: Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.
+ default_value: ""
+ required: false
+ - name: name_<1-Wire id>
+ description: This allows associating a human readable name with a sensor's 1-Wire identifier.
+ default_value: ""
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Provide human readable names
+ description: Associate two 1-Wire identifiers with human readable names.
+ config: |
+ sensors:
+ name_00000022276e: 'Machine room'
+ name_00000022298f: 'Rack 12'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: w1sensor.temp
- description: 1-Wire Temperature Sensor
- unit: "Celsius"
- chart_type: line
- dimensions:
- - name: a dimension per sensor
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: w1sensor.temp
+ description: 1-Wire Temperature Sensor
+ unit: "Celsius"
+ chart_type: line
+ dimensions:
+ - name: a dimension per sensor
diff --git a/collectors/python.d.plugin/w1sensor/metrics.csv b/collectors/python.d.plugin/w1sensor/metrics.csv
deleted file mode 100644
index 545649347..000000000
--- a/collectors/python.d.plugin/w1sensor/metrics.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-w1sensor.temp,,a dimension per sensor,Celsius,1-Wire Temperature Sensor,line,,python.d.plugin,w1sensor
diff --git a/collectors/python.d.plugin/w1sensor/w1sensor.conf b/collectors/python.d.plugin/w1sensor/w1sensor.conf
index 17271001b..b60d28650 100644
--- a/collectors/python.d.plugin/w1sensor/w1sensor.conf
+++ b/collectors/python.d.plugin/w1sensor/w1sensor.conf
@@ -59,7 +59,7 @@
# penalty: yes # the JOB's penalty
# autodetection_retry: 0 # the JOB's re-check interval in seconds
#
-# Additionally to the above, example also supports the following:
+# Additionally to the above, w1sensor also supports the following:
#
# name_<1-Wire id>: ''
# This allows associating a human readable name with a sensor's 1-Wire
diff --git a/collectors/python.d.plugin/zscores/metadata.yaml b/collectors/python.d.plugin/zscores/metadata.yaml
index 740d91e41..388e9b460 100644
--- a/collectors/python.d.plugin/zscores/metadata.yaml
+++ b/collectors/python.d.plugin/zscores/metadata.yaml
@@ -1,77 +1,187 @@
-meta:
- plugin_name: python.d.plugin
- module_name: zscores
- monitored_instance:
- name: python.d zscores
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: python.d.plugin
+modules:
+ - meta:
+ plugin_name: python.d.plugin
+ module_name: zscores
+ monitored_instance:
+ name: python.d zscores
+ link: https://en.wikipedia.org/wiki/Standard_score
+ categories:
+ - data-collection.other
+ icon_filename: ""
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - zscore
+ - z-score
+ - standard score
+ - standard deviation
+ - anomaly detection
+ - statistical anomaly detection
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: |
+ By using smoothed, rolling [Z-Scores](https://en.wikipedia.org/wiki/Standard_score) for selected metrics or charts you can narrow down your focus and shorten root cause analysis.
+ method_description: |
+ This collector uses the [Netdata rest api](https://github.com/netdata/netdata/blob/master/web/api/README.md) to get the `mean` and `stddev`
+ for each dimension on specified charts over a time range (defined by `train_secs` and `offset_secs`).
+
+ For each dimension it will calculate a Z-Score as `z = (x - mean) / stddev` (clipped at `z_clip`). Scores are then smoothed over
+ time (`z_smooth_n`) and, if `mode: 'per_chart'`, aggregated across dimensions to a smoothed, rolling chart level Z-Score at each time step.
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Python Requirements
+ description: |
+ This collector will only work with Python 3 and requires the below packages be installed.
+
+ ```bash
+ # become netdata user
+ sudo su -s /bin/bash netdata
+ # install required packages
+ pip3 install numpy pandas requests netdata-pandas==0.0.38
+ ```
+ configuration:
+ file:
+ name: python.d/zscores.conf
+ description: ""
+ options:
+ description: |
+ There are 2 sections:
+
+ * Global variables
+ * One or more JOBS that can define multiple different instances to monitor.
+
+ The following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.
+
+ Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.
+
+ Every configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: charts_regex
+ description: what charts to pull data for - A regex like `system\..*|` or `system\..*|apps.cpu|apps.mem` etc.
+ default_value: "system\\..*"
+ required: true
+ - name: train_secs
+ description: length of time (in seconds) to base calculations off for mean and stddev.
+ default_value: 14400
+ required: true
+ - name: offset_secs
+ description: offset (in seconds) preceding latest data to ignore when calculating mean and stddev.
+ default_value: 300
+ required: true
+ - name: train_every_n
+ description: recalculate the mean and stddev every n steps of the collector.
+ default_value: 900
+ required: true
+ - name: z_smooth_n
+ description: smooth the z score (to reduce sensitivity to spikes) by averaging it over last n values.
+ default_value: 15
+ required: true
+ - name: z_clip
+ description: cap absolute value of zscore (before smoothing) for better stability.
+ default_value: 10
+ required: true
+ - name: z_abs
+ description: "set z_abs: 'true' to make all zscores be absolute values only."
+ default_value: "true"
+ required: true
+ - name: burn_in
+ description: burn in period in which to initially calculate mean and stddev on every step.
+ default_value: 2
+ required: true
+ - name: mode
+ description: mode can be to get a zscore 'per_dim' or 'per_chart'.
+ default_value: per_chart
+ required: true
+ - name: per_chart_agg
+ description: per_chart_agg is how you aggregate from dimension to chart when mode='per_chart'.
+ default_value: mean
+ required: true
+ - name: update_every
+ description: Sets the default data collection frequency.
+ default_value: 5
+ required: false
+ - name: priority
+ description: Controls the order of charts at the netdata dashboard.
+ default_value: 60000
+ required: false
+ - name: autodetection_retry
+ description: Sets the job re-check interval in seconds.
+ default_value: 0
+ required: false
+ - name: penalty
+ description: Indicates whether to apply penalty to update_every in case of failures.
+ default_value: yes
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Default
+ description: Default configuration.
+ folding:
+ enabled: false
+ config: |
+ local:
+ name: 'local'
+ host: '127.0.0.1:19999'
+ charts_regex: 'system\..*'
+ charts_to_exclude: 'system.uptime'
+ train_secs: 14400
+ offset_secs: 300
+ train_every_n: 900
+ z_smooth_n: 15
+ z_clip: 10
+ z_abs: 'true'
+ burn_in: 2
+ mode: 'per_chart'
+ per_chart_agg: 'mean'
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: zscores.z
- description: Z Score
- unit: "z"
- chart_type: line
- dimensions:
- - name: a dimension per chart or dimension
- - name: zscores.3stddev
- description: Z Score >3
- unit: "count"
- chart_type: stacked
- dimensions:
- - name: a dimension per chart or dimension
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: zscores.z
+ description: Z Score
+ unit: "z"
+ chart_type: line
+ dimensions:
+ - name: a dimension per chart or dimension
+ - name: zscores.3stddev
+ description: Z Score >3
+ unit: "count"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per chart or dimension
diff --git a/collectors/python.d.plugin/zscores/metrics.csv b/collectors/python.d.plugin/zscores/metrics.csv
deleted file mode 100644
index 5066c7c33..000000000
--- a/collectors/python.d.plugin/zscores/metrics.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-zscores.z,,a dimension per chart or dimension,z,Z Score,line,,python.d.plugin,zscores
-zscores.3stddev,,a dimension per chart or dimension,count,Z Score >3,stacked,,python.d.plugin,zscores
diff --git a/collectors/slabinfo.plugin/metadata.yaml b/collectors/slabinfo.plugin/metadata.yaml
index 4da1a198d..7d135d611 100644
--- a/collectors/slabinfo.plugin/metadata.yaml
+++ b/collectors/slabinfo.plugin/metadata.yaml
@@ -1,83 +1,106 @@
-meta:
- plugin_name: slabinfo.plugin
- module_name: slabinfo.plugin
- monitored_instance:
- name: slabinfo
- link: ''
- categories: []
- icon_filename: ''
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: ''
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: slabinfo.plugin
+modules:
+ - meta:
+ plugin_name: slabinfo.plugin
+ module_name: slabinfo.plugin
+ monitored_instance:
+ name: Linux kernel SLAB allocator statistics
+ link: "https://kernel.org/"
+ categories:
+ - data-collection.linux-systems.kernel-metrics
+ icon_filename: 'linuxserver.svg'
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords:
+ - linux kernel
+ - slab
+ - slub
+ - slob
+ - slabinfo
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: >
+ Collects metrics on kernel SLAB cache utilization to monitor the low-level performance impact of workloads
+ in the kernel.
+ method_description: "The plugin parses `/proc/slabinfo`"
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: false
+ additional_permissions:
+ description: >
+ This integration requires read access to `/proc/slabinfo`, which is accessible only to the root user by
+ default. Netdata uses Linux Capabilities to give the plugin access to this file. `CAP_DAC_READ_SEARCH`
+ is added automatically during installation. This capability allows bypassing file read permission checks
+ and directory read and execute permission checks. If file capabilities are not usable, then the plugin is
+ instead installed with the SUID bit set in permissions sVko that it runs as root.
+ default_behavior:
+ auto_detection:
+ description: >
+ Due to the large number of metrics generated by this integration, it is disabled by default and must be
+ manually enabled inside `/etc/netdata/netdata.conf`
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugins]"
+ description: "The main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "The main configuration file."
+ enabled: true
+ list:
+ - name: Enable plugin
+ description: As described above plugin is disabled by default, this option is used to enable plugin.
+ default_value: no
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: mem.slabmemory
- description: Memory Usage
- unit: "B"
- chart_type: line
- dimensions:
- - name: a dimension per cache
- - name: mem.slabfilling
- description: Object Filling
- unit: "%"
- chart_type: line
- dimensions:
- - name: a dimension per cache
- - name: mem.slabwaste
- description: Memory waste
- unit: "B"
- chart_type: line
- dimensions:
- - name: a dimension per cache
+ folding:
+ title: Metrics
+ enabled: false
+ description: "SLAB cache utilization metrics for the whole system."
+ availability: []
+ scopes:
+ - name: global
+ description: ""
+ labels: []
+ metrics:
+ - name: mem.slabmemory
+ description: Memory Usage
+ unit: "B"
+ chart_type: line
+ dimensions:
+ - name: a dimension per cache
+ - name: mem.slabfilling
+ description: Object Filling
+ unit: "%"
+ chart_type: line
+ dimensions:
+ - name: a dimension per cache
+ - name: mem.slabwaste
+ description: Memory waste
+ unit: "B"
+ chart_type: line
+ dimensions:
+ - name: a dimension per cache
diff --git a/collectors/slabinfo.plugin/metrics.csv b/collectors/slabinfo.plugin/metrics.csv
deleted file mode 100644
index 4391cb6f5..000000000
--- a/collectors/slabinfo.plugin/metrics.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-mem.slabmemory,,a dimension per cache,B,"Memory Usage",line,,slabinfo.plugin,
-mem.slabfilling,,a dimension per cache,%,"Object Filling",line,,slabinfo.plugin,
-mem.slabwaste,,a dimension per cache,B,"Memory waste",line,,slabinfo.plugin,
\ No newline at end of file
diff --git a/collectors/systemd-journal.plugin/Makefile.am b/collectors/systemd-journal.plugin/Makefile.am
new file mode 100644
index 000000000..fd8f4ab21
--- /dev/null
+++ b/collectors/systemd-journal.plugin/Makefile.am
@@ -0,0 +1,11 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+AUTOMAKE_OPTIONS = subdir-objects
+MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
+
+dist_noinst_DATA = \
+ README.md \
+ $(NULL)
+
+dist_libconfig_DATA = \
+ $(NULL)
diff --git a/collectors/systemd-journal.plugin/README.md b/collectors/systemd-journal.plugin/README.md
new file mode 100644
index 000000000..e69de29bb
diff --git a/collectors/systemd-journal.plugin/systemd-journal.c b/collectors/systemd-journal.plugin/systemd-journal.c
new file mode 100644
index 000000000..08a1891e5
--- /dev/null
+++ b/collectors/systemd-journal.plugin/systemd-journal.c
@@ -0,0 +1,584 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+/*
+ * netdata systemd-journal.plugin
+ * Copyright (C) 2023 Netdata Inc.
+ * GPL v3+
+ */
+
+// TODO - 1) MARKDOC
+
+#include "collectors/all.h"
+#include "libnetdata/libnetdata.h"
+#include "libnetdata/required_dummies.h"
+
+#ifndef SD_JOURNAL_ALL_NAMESPACES
+#define JOURNAL_NAMESPACE SD_JOURNAL_LOCAL_ONLY
+#else
+#define JOURNAL_NAMESPACE SD_JOURNAL_ALL_NAMESPACES
+#endif
+
+#include
+#include
+
+#define FACET_MAX_VALUE_LENGTH 8192
+
+#define SYSTEMD_JOURNAL_FUNCTION_DESCRIPTION "View, search and analyze systemd journal entries."
+#define SYSTEMD_JOURNAL_FUNCTION_NAME "systemd-journal"
+#define SYSTEMD_JOURNAL_DEFAULT_TIMEOUT 30
+#define SYSTEMD_JOURNAL_MAX_PARAMS 100
+#define SYSTEMD_JOURNAL_DEFAULT_QUERY_DURATION (3 * 3600)
+#define SYSTEMD_JOURNAL_DEFAULT_ITEMS_PER_QUERY 200
+
+#define JOURNAL_PARAMETER_HELP "help"
+#define JOURNAL_PARAMETER_AFTER "after"
+#define JOURNAL_PARAMETER_BEFORE "before"
+#define JOURNAL_PARAMETER_ANCHOR "anchor"
+#define JOURNAL_PARAMETER_LAST "last"
+#define JOURNAL_PARAMETER_QUERY "query"
+
+#define SYSTEMD_ALWAYS_VISIBLE_KEYS NULL
+#define SYSTEMD_KEYS_EXCLUDED_FROM_FACETS NULL
+#define SYSTEMD_KEYS_INCLUDED_IN_FACETS \
+ "_TRANSPORT" \
+ "|SYSLOG_IDENTIFIER" \
+ "|SYSLOG_FACILITY" \
+ "|PRIORITY" \
+ "|_HOSTNAME" \
+ "|_RUNTIME_SCOPE" \
+ "|_PID" \
+ "|_UID" \
+ "|_GID" \
+ "|_SYSTEMD_UNIT" \
+ "|_SYSTEMD_SLICE" \
+ "|_SYSTEMD_USER_SLICE" \
+ "|_COMM" \
+ "|_EXE" \
+ "|_SYSTEMD_CGROUP" \
+ "|_SYSTEMD_USER_UNIT" \
+ "|USER_UNIT" \
+ "|UNIT" \
+ ""
+
+static netdata_mutex_t mutex = NETDATA_MUTEX_INITIALIZER;
+static bool plugin_should_exit = false;
+
+DICTIONARY *uids = NULL;
+DICTIONARY *gids = NULL;
+
+
+// ----------------------------------------------------------------------------
+
+int systemd_journal_query(BUFFER *wb, FACETS *facets, usec_t after_ut, usec_t before_ut, usec_t stop_monotonic_ut) {
+ sd_journal *j;
+ int r;
+
+ // Open the system journal for reading
+ r = sd_journal_open(&j, JOURNAL_NAMESPACE);
+ if (r < 0)
+ return HTTP_RESP_INTERNAL_SERVER_ERROR;
+
+ facets_rows_begin(facets);
+
+ bool timed_out = false;
+ size_t row_counter = 0;
+ sd_journal_seek_realtime_usec(j, before_ut);
+ SD_JOURNAL_FOREACH_BACKWARDS(j) {
+ row_counter++;
+
+ uint64_t msg_ut;
+ sd_journal_get_realtime_usec(j, &msg_ut);
+ if (msg_ut < after_ut)
+ break;
+
+ const void *data;
+ size_t length;
+ SD_JOURNAL_FOREACH_DATA(j, data, length) {
+ const char *key = data;
+ const char *equal = strchr(key, '=');
+ if(unlikely(!equal))
+ continue;
+
+ const char *value = ++equal;
+ size_t key_length = value - key; // including '\0'
+
+ char key_copy[key_length];
+ memcpy(key_copy, key, key_length - 1);
+ key_copy[key_length - 1] = '\0';
+
+ size_t value_length = length - key_length; // without '\0'
+ facets_add_key_value_length(facets, key_copy, value, value_length <= FACET_MAX_VALUE_LENGTH ? value_length : FACET_MAX_VALUE_LENGTH);
+ }
+
+ facets_row_finished(facets, msg_ut);
+
+ if((row_counter % 100) == 0 && now_monotonic_usec() > stop_monotonic_ut) {
+ timed_out = true;
+ break;
+ }
+ }
+
+ sd_journal_close(j);
+
+ buffer_json_member_add_uint64(wb, "status", HTTP_RESP_OK);
+ buffer_json_member_add_boolean(wb, "partial", timed_out);
+ buffer_json_member_add_string(wb, "type", "table");
+ buffer_json_member_add_time_t(wb, "update_every", 1);
+ buffer_json_member_add_string(wb, "help", SYSTEMD_JOURNAL_FUNCTION_DESCRIPTION);
+
+ facets_report(facets, wb);
+
+ buffer_json_member_add_time_t(wb, "expires", now_realtime_sec());
+ buffer_json_finalize(wb);
+
+ return HTTP_RESP_OK;
+}
+
+static void systemd_journal_function_help(const char *transaction) {
+ pluginsd_function_result_begin_to_stdout(transaction, HTTP_RESP_OK, "text/plain", now_realtime_sec() + 3600);
+ fprintf(stdout,
+ "%s / %s\n"
+ "\n"
+ "%s\n"
+ "\n"
+ "The following filters are supported:\n"
+ "\n"
+ " help\n"
+ " Shows this help message.\n"
+ "\n"
+ " before:TIMESTAMP\n"
+ " Absolute or relative (to now) timestamp in seconds, to start the query.\n"
+ " The query is always executed from the most recent to the oldest log entry.\n"
+ " If not given the default is: now.\n"
+ "\n"
+ " after:TIMESTAMP\n"
+ " Absolute or relative (to `before`) timestamp in seconds, to end the query.\n"
+ " If not given, the default is %d.\n"
+ "\n"
+ " last:ITEMS\n"
+ " The number of items to return.\n"
+ " The default is %d.\n"
+ "\n"
+ " anchor:NUMBER\n"
+ " The `timestamp` of the item last received, to return log entries after that.\n"
+ " If not given, the query will return the top `ITEMS` from the most recent.\n"
+ "\n"
+ " facet_id:value_id1,value_id2,value_id3,...\n"
+ " Apply filters to the query, based on the facet IDs returned.\n"
+ " Each `facet_id` can be given once, but multiple `facet_ids` can be given.\n"
+ "\n"
+ "Filters can be combined. Each filter can be given only one time.\n"
+ , program_name
+ , SYSTEMD_JOURNAL_FUNCTION_NAME
+ , SYSTEMD_JOURNAL_FUNCTION_DESCRIPTION
+ , -SYSTEMD_JOURNAL_DEFAULT_QUERY_DURATION
+ , SYSTEMD_JOURNAL_DEFAULT_ITEMS_PER_QUERY
+ );
+ pluginsd_function_result_end_to_stdout();
+}
+
+static const char *syslog_facility_to_name(int facility) {
+ switch (facility) {
+ case LOG_FAC(LOG_KERN): return "kern";
+ case LOG_FAC(LOG_USER): return "user";
+ case LOG_FAC(LOG_MAIL): return "mail";
+ case LOG_FAC(LOG_DAEMON): return "daemon";
+ case LOG_FAC(LOG_AUTH): return "auth";
+ case LOG_FAC(LOG_SYSLOG): return "syslog";
+ case LOG_FAC(LOG_LPR): return "lpr";
+ case LOG_FAC(LOG_NEWS): return "news";
+ case LOG_FAC(LOG_UUCP): return "uucp";
+ case LOG_FAC(LOG_CRON): return "cron";
+ case LOG_FAC(LOG_AUTHPRIV): return "authpriv";
+ case LOG_FAC(LOG_FTP): return "ftp";
+ case LOG_FAC(LOG_LOCAL0): return "local0";
+ case LOG_FAC(LOG_LOCAL1): return "local1";
+ case LOG_FAC(LOG_LOCAL2): return "local2";
+ case LOG_FAC(LOG_LOCAL3): return "local3";
+ case LOG_FAC(LOG_LOCAL4): return "local4";
+ case LOG_FAC(LOG_LOCAL5): return "local5";
+ case LOG_FAC(LOG_LOCAL6): return "local6";
+ case LOG_FAC(LOG_LOCAL7): return "local7";
+ default: return NULL;
+ }
+}
+
+static const char *syslog_priority_to_name(int priority) {
+ switch (priority) {
+ case LOG_ALERT: return "alert";
+ case LOG_CRIT: return "critical";
+ case LOG_DEBUG: return "debug";
+ case LOG_EMERG: return "panic";
+ case LOG_ERR: return "error";
+ case LOG_INFO: return "info";
+ case LOG_NOTICE: return "notice";
+ case LOG_WARNING: return "warning";
+ default: return NULL;
+ }
+}
+
+static char *uid_to_username(uid_t uid, char *buffer, size_t buffer_size) {
+ struct passwd pw, *result;
+ char tmp[1024 + 1];
+
+ if (getpwuid_r(uid, &pw, tmp, 1024, &result) != 0 || result == NULL)
+ return NULL;
+
+ strncpy(buffer, pw.pw_name, buffer_size - 1);
+ buffer[buffer_size - 1] = '\0'; // Null-terminate just in case
+ return buffer;
+}
+
+static char *gid_to_groupname(gid_t gid, char* buffer, size_t buffer_size) {
+ struct group grp, *result;
+ char tmp[1024 + 1];
+
+ if (getgrgid_r(gid, &grp, tmp, 1024, &result) != 0 || result == NULL)
+ return NULL;
+
+ strncpy(buffer, grp.gr_name, buffer_size - 1);
+ buffer[buffer_size - 1] = '\0'; // Null-terminate just in case
+ return buffer;
+}
+
+static void systemd_journal_transform_syslog_facility(FACETS *facets __maybe_unused, BUFFER *wb, void *data __maybe_unused) {
+ const char *v = buffer_tostring(wb);
+ if(*v && isdigit(*v)) {
+ int facility = str2i(buffer_tostring(wb));
+ const char *name = syslog_facility_to_name(facility);
+ if (name) {
+ buffer_flush(wb);
+ buffer_strcat(wb, name);
+ }
+ }
+}
+
+static void systemd_journal_transform_priority(FACETS *facets __maybe_unused, BUFFER *wb, void *data __maybe_unused) {
+ const char *v = buffer_tostring(wb);
+ if(*v && isdigit(*v)) {
+ int priority = str2i(buffer_tostring(wb));
+ const char *name = syslog_priority_to_name(priority);
+ if (name) {
+ buffer_flush(wb);
+ buffer_strcat(wb, name);
+ }
+ }
+}
+
+static void systemd_journal_transform_uid(FACETS *facets __maybe_unused, BUFFER *wb, void *data) {
+ DICTIONARY *cache = data;
+ const char *v = buffer_tostring(wb);
+ if(*v && isdigit(*v)) {
+ const char *sv = dictionary_get(cache, v);
+ if(!sv) {
+ char buf[1024 + 1];
+ int uid = str2i(buffer_tostring(wb));
+ const char *name = uid_to_username(uid, buf, 1024);
+ if (!name)
+ name = v;
+
+ sv = dictionary_set(cache, v, (void *)name, strlen(name) + 1);
+ }
+
+ buffer_flush(wb);
+ buffer_strcat(wb, sv);
+ }
+}
+
+static void systemd_journal_transform_gid(FACETS *facets __maybe_unused, BUFFER *wb, void *data) {
+ DICTIONARY *cache = data;
+ const char *v = buffer_tostring(wb);
+ if(*v && isdigit(*v)) {
+ const char *sv = dictionary_get(cache, v);
+ if(!sv) {
+ char buf[1024 + 1];
+ int gid = str2i(buffer_tostring(wb));
+ const char *name = gid_to_groupname(gid, buf, 1024);
+ if (!name)
+ name = v;
+
+ sv = dictionary_set(cache, v, (void *)name, strlen(name) + 1);
+ }
+
+ buffer_flush(wb);
+ buffer_strcat(wb, sv);
+ }
+}
+
+static void systemd_journal_dynamic_row_id(FACETS *facets __maybe_unused, BUFFER *json_array, FACET_ROW_KEY_VALUE *rkv, FACET_ROW *row, void *data __maybe_unused) {
+ FACET_ROW_KEY_VALUE *syslog_identifier_rkv = dictionary_get(row->dict, "SYSLOG_IDENTIFIER");
+ FACET_ROW_KEY_VALUE *pid_rkv = dictionary_get(row->dict, "_PID");
+
+ const char *identifier = syslog_identifier_rkv ? buffer_tostring(syslog_identifier_rkv->wb) : "UNKNOWN";
+ const char *pid = pid_rkv ? buffer_tostring(pid_rkv->wb) : "UNKNOWN";
+
+ buffer_flush(rkv->wb);
+ buffer_sprintf(rkv->wb, "%s[%s]", identifier, pid);
+
+ buffer_json_add_array_item_string(json_array, buffer_tostring(rkv->wb));
+}
+
+static void function_systemd_journal(const char *transaction, char *function, char *line_buffer __maybe_unused, int line_max __maybe_unused, int timeout __maybe_unused) {
+ char *words[SYSTEMD_JOURNAL_MAX_PARAMS] = { NULL };
+ size_t num_words = quoted_strings_splitter_pluginsd(function, words, SYSTEMD_JOURNAL_MAX_PARAMS);
+
+ BUFFER *wb = buffer_create(0, NULL);
+ buffer_flush(wb);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS);
+
+ FACETS *facets = facets_create(50, 0, FACETS_OPTION_ALL_KEYS_FTS,
+ SYSTEMD_ALWAYS_VISIBLE_KEYS,
+ SYSTEMD_KEYS_INCLUDED_IN_FACETS,
+ SYSTEMD_KEYS_EXCLUDED_FROM_FACETS);
+
+ facets_accepted_param(facets, JOURNAL_PARAMETER_AFTER);
+ facets_accepted_param(facets, JOURNAL_PARAMETER_BEFORE);
+ facets_accepted_param(facets, JOURNAL_PARAMETER_ANCHOR);
+ facets_accepted_param(facets, JOURNAL_PARAMETER_LAST);
+ facets_accepted_param(facets, JOURNAL_PARAMETER_QUERY);
+
+ // register the fields in the order you want them on the dashboard
+
+ facets_register_dynamic_key(facets, "ND_JOURNAL_PROCESS", FACET_KEY_OPTION_NO_FACET|FACET_KEY_OPTION_VISIBLE|FACET_KEY_OPTION_FTS,
+ systemd_journal_dynamic_row_id, NULL);
+
+ facets_register_key(facets, "MESSAGE",
+ FACET_KEY_OPTION_NO_FACET|FACET_KEY_OPTION_MAIN_TEXT|FACET_KEY_OPTION_VISIBLE|FACET_KEY_OPTION_FTS);
+
+ facets_register_key_transformation(facets, "PRIORITY", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS,
+ systemd_journal_transform_priority, NULL);
+
+ facets_register_key_transformation(facets, "SYSLOG_FACILITY", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS,
+ systemd_journal_transform_syslog_facility, NULL);
+
+ facets_register_key(facets, "SYSLOG_IDENTIFIER", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS);
+ facets_register_key(facets, "UNIT", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS);
+ facets_register_key(facets, "USER_UNIT", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS);
+
+ facets_register_key_transformation(facets, "_UID", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS,
+ systemd_journal_transform_uid, uids);
+
+ facets_register_key_transformation(facets, "_GID", FACET_KEY_OPTION_FACET|FACET_KEY_OPTION_FTS,
+ systemd_journal_transform_gid, gids);
+
+ time_t after_s = 0, before_s = 0;
+ usec_t anchor = 0;
+ size_t last = 0;
+ const char *query = NULL;
+
+ buffer_json_member_add_object(wb, "request");
+ buffer_json_member_add_object(wb, "filters");
+
+ for(int i = 1; i < SYSTEMD_JOURNAL_MAX_PARAMS ;i++) {
+ const char *keyword = get_word(words, num_words, i);
+ if(!keyword) break;
+
+ if(strcmp(keyword, JOURNAL_PARAMETER_HELP) == 0) {
+ systemd_journal_function_help(transaction);
+ goto cleanup;
+ }
+ else if(strncmp(keyword, JOURNAL_PARAMETER_AFTER ":", strlen(JOURNAL_PARAMETER_AFTER ":")) == 0) {
+ after_s = str2l(&keyword[strlen(JOURNAL_PARAMETER_AFTER ":")]);
+ }
+ else if(strncmp(keyword, JOURNAL_PARAMETER_BEFORE ":", strlen(JOURNAL_PARAMETER_BEFORE ":")) == 0) {
+ before_s = str2l(&keyword[strlen(JOURNAL_PARAMETER_BEFORE ":")]);
+ }
+ else if(strncmp(keyword, JOURNAL_PARAMETER_ANCHOR ":", strlen(JOURNAL_PARAMETER_ANCHOR ":")) == 0) {
+ anchor = str2ull(&keyword[strlen(JOURNAL_PARAMETER_ANCHOR ":")], NULL);
+ }
+ else if(strncmp(keyword, JOURNAL_PARAMETER_LAST ":", strlen(JOURNAL_PARAMETER_LAST ":")) == 0) {
+ last = str2ul(&keyword[strlen(JOURNAL_PARAMETER_LAST ":")]);
+ }
+ else if(strncmp(keyword, JOURNAL_PARAMETER_QUERY ":", strlen(JOURNAL_PARAMETER_QUERY ":")) == 0) {
+ query= &keyword[strlen(JOURNAL_PARAMETER_QUERY ":")];
+ }
+ else {
+ char *value = strchr(keyword, ':');
+ if(value) {
+ *value++ = '\0';
+
+ buffer_json_member_add_array(wb, keyword);
+
+ while(value) {
+ char *sep = strchr(value, ',');
+ if(sep)
+ *sep++ = '\0';
+
+ facets_register_facet_filter(facets, keyword, value, FACET_KEY_OPTION_REORDER);
+ buffer_json_add_array_item_string(wb, value);
+
+ value = sep;
+ }
+
+ buffer_json_array_close(wb); // keyword
+ }
+ }
+ }
+
+ buffer_json_object_close(wb); // filters
+
+ time_t expires = now_realtime_sec() + 1;
+ time_t now_s;
+
+ if(!after_s && !before_s) {
+ now_s = now_realtime_sec();
+ before_s = now_s;
+ after_s = before_s - SYSTEMD_JOURNAL_DEFAULT_QUERY_DURATION;
+ }
+ else
+ rrdr_relative_window_to_absolute(&after_s, &before_s, &now_s, false);
+
+ if(after_s > before_s) {
+ time_t tmp = after_s;
+ after_s = before_s;
+ before_s = tmp;
+ }
+
+ if(after_s == before_s)
+ after_s = before_s - SYSTEMD_JOURNAL_DEFAULT_QUERY_DURATION;
+
+ if(!last)
+ last = SYSTEMD_JOURNAL_DEFAULT_ITEMS_PER_QUERY;
+
+ buffer_json_member_add_time_t(wb, "after", after_s);
+ buffer_json_member_add_time_t(wb, "before", before_s);
+ buffer_json_member_add_uint64(wb, "anchor", anchor);
+ buffer_json_member_add_uint64(wb, "last", last);
+ buffer_json_member_add_string(wb, "query", query);
+ buffer_json_member_add_time_t(wb, "timeout", timeout);
+ buffer_json_object_close(wb); // request
+
+ facets_set_items(facets, last);
+ facets_set_anchor(facets, anchor);
+ facets_set_query(facets, query);
+ int response = systemd_journal_query(wb, facets, after_s * USEC_PER_SEC, before_s * USEC_PER_SEC,
+ now_monotonic_usec() + (timeout - 1) * USEC_PER_SEC);
+
+ if(response != HTTP_RESP_OK) {
+ pluginsd_function_json_error(transaction, response, "failed");
+ goto cleanup;
+ }
+
+ pluginsd_function_result_begin_to_stdout(transaction, HTTP_RESP_OK, "application/json", expires);
+ fwrite(buffer_tostring(wb), buffer_strlen(wb), 1, stdout);
+
+ pluginsd_function_result_end_to_stdout();
+
+cleanup:
+ facets_destroy(facets);
+ buffer_free(wb);
+}
+
+static void *reader_main(void *arg __maybe_unused) {
+ char buffer[PLUGINSD_LINE_MAX + 1];
+
+ char *s = NULL;
+ while(!plugin_should_exit && (s = fgets(buffer, PLUGINSD_LINE_MAX, stdin))) {
+
+ char *words[PLUGINSD_MAX_WORDS] = { NULL };
+ size_t num_words = quoted_strings_splitter_pluginsd(buffer, words, PLUGINSD_MAX_WORDS);
+
+ const char *keyword = get_word(words, num_words, 0);
+
+ if(keyword && strcmp(keyword, PLUGINSD_KEYWORD_FUNCTION) == 0) {
+ char *transaction = get_word(words, num_words, 1);
+ char *timeout_s = get_word(words, num_words, 2);
+ char *function = get_word(words, num_words, 3);
+
+ if(!transaction || !*transaction || !timeout_s || !*timeout_s || !function || !*function) {
+ netdata_log_error("Received incomplete %s (transaction = '%s', timeout = '%s', function = '%s'). Ignoring it.",
+ keyword,
+ transaction?transaction:"(unset)",
+ timeout_s?timeout_s:"(unset)",
+ function?function:"(unset)");
+ }
+ else {
+ int timeout = str2i(timeout_s);
+ if(timeout <= 0) timeout = SYSTEMD_JOURNAL_DEFAULT_TIMEOUT;
+
+ netdata_mutex_lock(&mutex);
+
+ if(strncmp(function, SYSTEMD_JOURNAL_FUNCTION_NAME, strlen(SYSTEMD_JOURNAL_FUNCTION_NAME)) == 0)
+ function_systemd_journal(transaction, function, buffer, PLUGINSD_LINE_MAX + 1, timeout);
+ else
+ pluginsd_function_json_error(transaction, HTTP_RESP_NOT_FOUND, "No function with this name found in systemd-journal.plugin.");
+
+ fflush(stdout);
+ netdata_mutex_unlock(&mutex);
+ }
+ }
+ else
+ netdata_log_error("Received unknown command: %s", keyword?keyword:"(unset)");
+ }
+
+ if(!s || feof(stdin) || ferror(stdin)) {
+ plugin_should_exit = true;
+ netdata_log_error("Received error on stdin.");
+ }
+
+ exit(1);
+}
+
+int main(int argc __maybe_unused, char **argv __maybe_unused) {
+ stderror = stderr;
+ clocks_init();
+
+ program_name = "systemd-journal.plugin";
+
+ // disable syslog
+ error_log_syslog = 0;
+
+ // set errors flood protection to 100 logs per hour
+ error_log_errors_per_period = 100;
+ error_log_throttle_period = 3600;
+
+ uids = dictionary_create(0);
+ gids = dictionary_create(0);
+
+ // ------------------------------------------------------------------------
+ // debug
+
+ if(argc == 2 && strcmp(argv[1], "debug") == 0) {
+ char buf[] = "systemd-journal after:-86400 before:0 last:500";
+ function_systemd_journal("123", buf, "", 0, 30);
+ exit(1);
+ }
+
+ // ------------------------------------------------------------------------
+
+ netdata_thread_t reader_thread;
+ netdata_thread_create(&reader_thread, "SDJ_READER", NETDATA_THREAD_OPTION_DONT_LOG, reader_main, NULL);
+
+ // ------------------------------------------------------------------------
+
+ time_t started_t = now_monotonic_sec();
+
+ size_t iteration;
+ usec_t step = 1000 * USEC_PER_MS;
+ bool tty = isatty(fileno(stderr)) == 1;
+
+ netdata_mutex_lock(&mutex);
+ fprintf(stdout, PLUGINSD_KEYWORD_FUNCTION " \"%s\" %d \"%s\"\n",
+ SYSTEMD_JOURNAL_FUNCTION_NAME, SYSTEMD_JOURNAL_DEFAULT_TIMEOUT, SYSTEMD_JOURNAL_FUNCTION_DESCRIPTION);
+
+ heartbeat_t hb;
+ heartbeat_init(&hb);
+ for(iteration = 0; 1 ; iteration++) {
+ netdata_mutex_unlock(&mutex);
+ heartbeat_next(&hb, step);
+ netdata_mutex_lock(&mutex);
+
+ if(!tty)
+ fprintf(stdout, "\n");
+
+ fflush(stdout);
+
+ time_t now = now_monotonic_sec();
+ if(now - started_t > 86400)
+ break;
+ }
+
+ dictionary_destroy(uids);
+ dictionary_destroy(gids);
+
+ exit(0);
+}
diff --git a/collectors/tc.plugin/metadata.yaml b/collectors/tc.plugin/metadata.yaml
index 2fca8d1e2..dcd03e470 100644
--- a/collectors/tc.plugin/metadata.yaml
+++ b/collectors/tc.plugin/metadata.yaml
@@ -1,102 +1,115 @@
-meta:
- plugin_name: tc.plugin
- module_name: tc.plugin
- monitored_instance:
- name: tc
- link: ''
- categories:
- - data-collection.networking-stack-and-network-interfaces
- icon_filename: 'freeradius.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine tc metrics to gain insights into Linux traffic control operations. Study packet flow rates, queue lengths, and drop rates to optimize network traffic flow.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: network device, direction
- description: ""
- labels:
- - name: device
- description: TBD
- - name: name
- description: TBD
- - name: family
- description: TBD
+plugin_name: tc.plugin
+modules:
+ - meta:
+ plugin_name: tc.plugin
+ module_name: tc.plugin
+ monitored_instance:
+ name: tc QoS classes
+ link: "https://wiki.linuxfoundation.org/networking/iproute2"
+ categories:
+ - data-collection.linux-systems.network-metrics
+ icon_filename: "netdata.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Examine tc metrics to gain insights into Linux traffic control operations. Study packet flow rates, queue lengths, and drop rates to optimize network traffic flow."
+ method_description: "The plugin uses `tc` command to collect information about Traffic control."
+ supported_platforms:
+ include:
+ - Linux
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs to access command `tc` to get the necessary metrics. To achieve this netdata modifies permission of file `/usr/libexec/netdata/plugins.d/tc-qos-helper.sh`."
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:tc]"
+ description: "The main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config option"
+ enabled: true
+ list:
+ - name: script to run to get tc values
+ description: Path to script `tc-qos-helper.sh`
+ default_value: "usr/libexec/netdata/plugins.d/tc-qos-helper.s"
+ required: false
+ examples:
+ folding:
+ enabled: false
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic example configuration.
+ config: |
+ [plugin:tc]
+ script to run to get tc values = /usr/libexec/netdata/plugins.d/tc-qos-helper.sh
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: tc.qos
- description: Class Usage
- unit: "kilobits/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per class
- - name: tc.qos_packets
- description: Class Packets
- unit: "packets/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per class
- - name: tc.qos_dropped
- description: Class Dropped Packets
- unit: "packets/s"
- chart_type: stacked
- dimensions:
- - name: a dimension per class
- - name: tc.qos_tokens
- description: Class Tokens
- unit: "tokens"
- chart_type: line
- dimensions:
- - name: a dimension per class
- - name: tc.qos_ctokens
- description: Class cTokens
- unit: "ctokens"
- chart_type: line
- dimensions:
- - name: a dimension per class
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: network device direction
+ description: "Metrics related to QoS network device directions. Each direction (in/out) produces its own set of the following metrics."
+ labels:
+ - name: device
+ description: The network interface.
+ - name: device_name
+ description: The network interface name
+ - name: group
+ description: The device family
+ metrics:
+ - name: tc.qos
+ description: Class Usage
+ unit: "kilobits/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per class
+ - name: tc.qos_packets
+ description: Class Packets
+ unit: "packets/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per class
+ - name: tc.qos_dropped
+ description: Class Dropped Packets
+ unit: "packets/s"
+ chart_type: stacked
+ dimensions:
+ - name: a dimension per class
+ - name: tc.qos_tokens
+ description: Class Tokens
+ unit: "tokens"
+ chart_type: line
+ dimensions:
+ - name: a dimension per class
+ - name: tc.qos_ctokens
+ description: Class cTokens
+ unit: "ctokens"
+ chart_type: line
+ dimensions:
+ - name: a dimension per class
diff --git a/collectors/tc.plugin/metrics.csv b/collectors/tc.plugin/metrics.csv
deleted file mode 100644
index b8e15649a..000000000
--- a/collectors/tc.plugin/metrics.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-tc.qos,"network device, direction",a dimension per class,kilobits/s,"Class Usage",stacked,"device, name, family",tc.plugin,
-tc.qos_packets,"network device, direction",a dimension per class,packets/s,"Class Packets",stacked,"device, name, family",tc.plugin,
-tc.qos_dropped,"network device, direction",a dimension per class,packets/s,"Class Dropped Packets",stacked,"device, name, family",tc.plugin,
-tc.qos_tokens,"network device, direction",a dimension per class,tokens,"Class Tokens",line,"device, name, family",tc.plugin,
-tc.qos_ctokens,"network device, direction",a dimension per class,ctokens,"Class cTokens",line,"device, name, family",tc.plugin,
\ No newline at end of file
diff --git a/collectors/timex.plugin/metadata.yaml b/collectors/timex.plugin/metadata.yaml
index 27a54575a..2b43d8a24 100644
--- a/collectors/timex.plugin/metadata.yaml
+++ b/collectors/timex.plugin/metadata.yaml
@@ -1,90 +1,112 @@
-meta:
- plugin_name: timex.plugin
- module_name: timex.plugin
- monitored_instance:
- name: Timex
- link: ''
- categories:
- - data-collection.system-clock-and-ntp
- icon_filename: 'syslog.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Examine Timex metrics to gain insights into system clock operations. Study time sync status, clock drift, and adjustments to ensure accurate system timekeeping.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts:
-- name: system_clock_sync_state
- link: https://github.com/netdata/netdata/blob/master/health/health.d/timex.conf
- metric: system.clock_sync_state
- info: when set to 0, the system kernel believes the system clock is not properly synchronized to a reliable server
- os: "linux"
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
+plugin_name: timex.plugin
+modules:
+ - meta:
+ plugin_name: timex.plugin
+ module_name: timex.plugin
+ monitored_instance:
+ name: Timex
+ link: ""
+ categories:
+ - data-collection.system-clock-and-ntp
+ icon_filename: "syslog.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "Examine Timex metrics to gain insights into system clock operations. Study time sync status, clock drift, and adjustments to ensure accurate system timekeeping."
+ method_description: "It uses system call adjtimex on Linux and ntp_adjtime on FreeBSD or Mac to monitor the system kernel clock synchronization state."
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: ""
+ default_behavior:
+ auto_detection:
+ description: ""
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list: []
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:timex]"
+ description: "The netdata main configuration file."
+ options:
+ description: "At least one option ('clock synchronization state', 'time offset') needs to be enabled for this collector to run."
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ - name: clock synchronization state
+ description: Make chart showing system clock synchronization state.
+ default_value: yes
+ required: true
+ - name: time offset
+ description: Make chart showing computed time offset between local system and reference clock
+ default_value: yes
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: "Config"
+ list:
+ - name: Basic
+ description: A basic configuration example.
+ config: |
+ [plugin:timex]
+ update every = 1
+ clock synchronization state = yes
+ time offset = yes
+ troubleshooting:
+ problems:
+ list: []
+ alerts:
+ - name: system_clock_sync_state
+ link: https://github.com/netdata/netdata/blob/master/health/health.d/timex.conf
+ metric: system.clock_sync_state
+ info: when set to 0, the system kernel believes the system clock is not properly synchronized to a reliable server
+ os: "linux"
metrics:
- - name: system.clock_sync_state
- description: System Clock Synchronization State
- unit: "state"
- chart_type: line
- dimensions:
- - name: state
- - name: system.clock_status
- description: System Clock Status
- unit: "status"
- chart_type: line
- dimensions:
- - name: unsync
- - name: clockerr
- - name: system.clock_sync_offset
- description: Computed Time Offset Between Local System and Reference Clock
- unit: "milliseconds"
- chart_type: line
- dimensions:
- - name: offset
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: system.clock_sync_state
+ description: System Clock Synchronization State
+ unit: "state"
+ chart_type: line
+ dimensions:
+ - name: state
+ - name: system.clock_status
+ description: System Clock Status
+ unit: "status"
+ chart_type: line
+ dimensions:
+ - name: unsync
+ - name: clockerr
+ - name: system.clock_sync_offset
+ description: Computed Time Offset Between Local System and Reference Clock
+ unit: "milliseconds"
+ chart_type: line
+ dimensions:
+ - name: offset
diff --git a/collectors/timex.plugin/metrics.csv b/collectors/timex.plugin/metrics.csv
deleted file mode 100644
index c7e59cca4..000000000
--- a/collectors/timex.plugin/metrics.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-system.clock_sync_state,,state,state,"System Clock Synchronization State",line,,timex.plugin,
-system.clock_status,,"unsync, clockerr",status,"System Clock Status",line,,timex.plugin,
-system.clock_sync_offset,,offset,milliseconds,"Computed Time Offset Between Local System and Reference Clock",line,,timex.plugin,
\ No newline at end of file
diff --git a/collectors/xenstat.plugin/metadata.yaml b/collectors/xenstat.plugin/metadata.yaml
index 610435a33..493183694 100644
--- a/collectors/xenstat.plugin/metadata.yaml
+++ b/collectors/xenstat.plugin/metadata.yaml
@@ -1,181 +1,195 @@
-meta:
- plugin_name: xenstat.plugin
- module_name: xenstat.plugin
- monitored_instance:
- name: Xen/XCP-ng
- link: ''
- categories:
- - data-collection.containers-and-vms
- icon_filename: 'xen.png'
- related_resources:
- integrations:
- list: []
- info_provided_to_referring_integrations:
- description: ''
- keywords: []
- most_popular: false
-overview:
- data_collection:
- metrics_description: 'Monitor Xen/XCP-ng with Netdata for streamlined virtual machine performance and resource management. Optimize virtualization operations with real-time insights, built-in alerts, and anomaly advisor.'
- method_description: ''
- supported_platforms:
- include: []
- exclude: []
- multi-instance: true
- additional_permissions:
- description: ''
- default_behavior:
- auto_detection:
- description: ''
- limits:
- description: ''
- performance_impact:
- description: ''
-setup:
- prerequisites:
- list: []
- configuration:
- file:
- name: ''
- description: ''
- options:
- description: ''
- folding:
- title: ''
- enabled: true
- list: []
- examples:
- folding:
- enabled: true
- title: ''
- list: []
-troubleshooting:
- problems:
- list: []
-alerts: []
-metrics:
- folding:
- title: Metrics
- enabled: false
- description: ""
- availability: []
- scopes:
- - name: global
- description: ""
- labels: []
- metrics:
- - name: xenstat.mem
- description: Memory Usage
- unit: "MiB"
- chart_type: stacked
- dimensions:
- - name: free
- - name: used
- - name: xenstat.domains
- description: Number of Domains
- unit: "domains"
- chart_type: line
- dimensions:
- - name: domains
- - name: xenstat.cpus
- description: Number of CPUs
- unit: "cpus"
- chart_type: line
- dimensions:
- - name: cpus
- - name: xenstat.cpu_freq
- description: CPU Frequency
- unit: "MHz"
- chart_type: line
- dimensions:
- - name: frequency
- - name: xendomain
- description: ""
- labels: []
+plugin_name: xenstat.plugin
+modules:
+ - meta:
+ plugin_name: xenstat.plugin
+ module_name: xenstat.plugin
+ monitored_instance:
+ name: Xen/XCP-ng
+ link: "https://xenproject.org/"
+ categories:
+ - data-collection.containers-and-vms
+ icon_filename: "xen.png"
+ related_resources:
+ integrations:
+ list: []
+ info_provided_to_referring_integrations:
+ description: ""
+ keywords: []
+ most_popular: false
+ overview:
+ data_collection:
+ metrics_description: "This collector monitors XenServer and XCP-ng host and domains statistics."
+ method_description: ""
+ supported_platforms:
+ include: []
+ exclude: []
+ multi_instance: true
+ additional_permissions:
+ description: "The plugin needs setuid."
+ default_behavior:
+ auto_detection:
+ description: "This plugin requires the `xen-dom0-libs-devel` and `yajl-devel` libraries to be installed."
+ limits:
+ description: ""
+ performance_impact:
+ description: ""
+ setup:
+ prerequisites:
+ list:
+ - title: Libraries
+ description: |
+ 1. Install `xen-dom0-libs-devel` and `yajl-devel` using the package manager of your system.
+
+ Note: On Cent-OS systems you will need `centos-release-xen` repository and the required package for xen is `xen-devel`
+
+ 2. Re-install Netdata from source. The installer will detect that the required libraries are now available and will also build xenstat.plugin.
+ configuration:
+ file:
+ name: "netdata.conf"
+ section_name: "[plugin:xenstat]"
+ description: "The netdata main configuration file."
+ options:
+ description: ""
+ folding:
+ title: "Config options"
+ enabled: true
+ list:
+ - name: update every
+ description: Data collection frequency.
+ default_value: 1
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ""
+ list: []
+ troubleshooting:
+ problems:
+ list: []
+ alerts: []
metrics:
- - name: xendomain.states
- description: Domain States
- unit: "boolean"
- chart_type: line
- dimensions:
- - name: running
- - name: blocked
- - name: paused
- - name: shutdown
- - name: crashed
- - name: dying
- - name: xendomain.cpu
- description: CPU Usage (100% = 1 core)
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: used
- - name: xendomain.mem
- description: Memory Reservation
- unit: "MiB"
- chart_type: line
- dimensions:
- - name: maximum
- - name: current
- - name: xendomain.vcpu
- description: CPU Usage per VCPU
- unit: "percentage"
- chart_type: line
- dimensions:
- - name: a dimension per vcpu
- - name: xendomain, vbd
- description: ""
- labels: []
- metrics:
- - name: xendomain.oo_req_vbd
- description: VBD{%u} Out Of Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: requests
- - name: xendomain.requests_vbd
- description: VBD{%u} Requests
- unit: "requests/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: xendomain.sectors_vbd
- description: VBD{%u} Read/Written Sectors
- unit: "sectors/s"
- chart_type: line
- dimensions:
- - name: read
- - name: write
- - name: xendomain, network
- description: ""
- labels: []
- metrics:
- - name: xendomain.bytes_network
- description: Network{%u} Received/Sent Bytes
- unit: "kilobits/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: xendomain.packets_network
- description: Network{%u} Received/Sent Packets
- unit: "packets/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: xendomain.errors_network
- description: Network{%u} Receive/Transmit Errors
- unit: "errors/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
- - name: xendomain.drops_network
- description: Network{%u} Receive/Transmit Drops
- unit: "drops/s"
- chart_type: line
- dimensions:
- - name: received
- - name: sent
+ folding:
+ title: Metrics
+ enabled: false
+ description: ""
+ availability: []
+ scopes:
+ - name: global
+ description: "These metrics refer to the entire monitored application."
+ labels: []
+ metrics:
+ - name: xenstat.mem
+ description: Memory Usage
+ unit: "MiB"
+ chart_type: stacked
+ dimensions:
+ - name: free
+ - name: used
+ - name: xenstat.domains
+ description: Number of Domains
+ unit: "domains"
+ chart_type: line
+ dimensions:
+ - name: domains
+ - name: xenstat.cpus
+ description: Number of CPUs
+ unit: "cpus"
+ chart_type: line
+ dimensions:
+ - name: cpus
+ - name: xenstat.cpu_freq
+ description: CPU Frequency
+ unit: "MHz"
+ chart_type: line
+ dimensions:
+ - name: frequency
+ - name: xendomain
+ description: "Metrics related to Xen domains. Each domain provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: xendomain.states
+ description: Domain States
+ unit: "boolean"
+ chart_type: line
+ dimensions:
+ - name: running
+ - name: blocked
+ - name: paused
+ - name: shutdown
+ - name: crashed
+ - name: dying
+ - name: xendomain.cpu
+ description: CPU Usage (100% = 1 core)
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: used
+ - name: xendomain.mem
+ description: Memory Reservation
+ unit: "MiB"
+ chart_type: line
+ dimensions:
+ - name: maximum
+ - name: current
+ - name: xendomain.vcpu
+ description: CPU Usage per VCPU
+ unit: "percentage"
+ chart_type: line
+ dimensions:
+ - name: a dimension per vcpu
+ - name: xendomain vbd
+ description: "Metrics related to Xen domain Virtual Block Device. Each VBD provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: xendomain.oo_req_vbd
+ description: VBD{%u} Out Of Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: requests
+ - name: xendomain.requests_vbd
+ description: VBD{%u} Requests
+ unit: "requests/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: xendomain.sectors_vbd
+ description: VBD{%u} Read/Written Sectors
+ unit: "sectors/s"
+ chart_type: line
+ dimensions:
+ - name: read
+ - name: write
+ - name: xendomain network
+ description: "Metrics related to Xen domain network interfaces. Each network interface provides its own set of the following metrics."
+ labels: []
+ metrics:
+ - name: xendomain.bytes_network
+ description: Network{%u} Received/Sent Bytes
+ unit: "kilobits/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: xendomain.packets_network
+ description: Network{%u} Received/Sent Packets
+ unit: "packets/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: xendomain.errors_network
+ description: Network{%u} Receive/Transmit Errors
+ unit: "errors/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
+ - name: xendomain.drops_network
+ description: Network{%u} Receive/Transmit Drops
+ unit: "drops/s"
+ chart_type: line
+ dimensions:
+ - name: received
+ - name: sent
diff --git a/collectors/xenstat.plugin/metrics.csv b/collectors/xenstat.plugin/metrics.csv
deleted file mode 100644
index 2256ddf10..000000000
--- a/collectors/xenstat.plugin/metrics.csv
+++ /dev/null
@@ -1,16 +0,0 @@
-metric,scope,dimensions,unit,description,chart_type,labels,plugin,module
-xenstat.mem,,"free, used",MiB,"Memory Usage",stacked,,xenstat.plugin,
-xenstat.domains,,domains,domains,"Number of Domains",line,,xenstat.plugin,
-xenstat.cpus,,cpus,cpus,"Number of CPUs",line,,xenstat.plugin,
-xenstat.cpu_freq,,frequency,MHz,"CPU Frequency",line,,xenstat.plugin,
-xendomain.states,xendomain,"running, blocked, paused, shutdown, crashed, dying",boolean,"Domain States",line,,xenstat.plugin,
-xendomain.cpu,xendomain,used,percentage,"CPU Usage (100% = 1 core)",line,,xenstat.plugin,
-xendomain.mem,xendomain,"maximum, current",MiB,"Memory Reservation",line,,xenstat.plugin,
-xendomain.vcpu,xendomain,a dimension per vcpu,percentage,"CPU Usage per VCPU",line,,xenstat.plugin,
-xendomain.oo_req_vbd,"xendomain, vbd",requests,requests/s,"VBD{%u} Out Of Requests",line,,xenstat.plugin,
-xendomain.requests_vbd,"xendomain, vbd","read, write",requests/s,"VBD{%u} Requests",line,,xenstat.plugin,
-xendomain.sectors_vbd,"xendomain, vbd","read, write",sectors/s,"VBD{%u} Read/Written Sectors",line,,xenstat.plugin,
-xendomain.bytes_network,"xendomain, network","received, sent",kilobits/s,"Network{%u} Received/Sent Bytes",line,,xenstat.plugin,
-xendomain.packets_network,"xendomain, network","received, sent",packets/s,"Network{%u} Received/Sent Packets",line,,xenstat.plugin,
-xendomain.errors_network,"xendomain, network","received, sent",errors/s,"Network{%u} Receive/Transmit Errors",line,,xenstat.plugin,
-xendomain.drops_network,"xendomain, network","received, sent",drops/s,"Network{%u} Receive/Transmit Drops",line,,xenstat.plugin,
\ No newline at end of file
diff --git a/configure.ac b/configure.ac
index d2f047e61..ac0d7bff6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,6 +69,12 @@ AC_ARG_ENABLE(
,
[enable_plugin_freeipmi="detect"]
)
+AC_ARG_ENABLE(
+ [plugin-systemd-journal],
+ [AS_HELP_STRING([--enable-plugin-systemd-journal], [enable systemd-journal plugin @<:@default autodetect@:>@])],
+ ,
+ [enable_plugin_systemd_journal="detect"]
+)
AC_ARG_ENABLE(
[plugin-cups],
[AS_HELP_STRING([--enable-plugin-cups], [enable cups plugin @<:@default autodetect@:>@])],
@@ -1106,6 +1112,39 @@ AC_MSG_RESULT([${enable_plugin_freeipmi}])
AM_CONDITIONAL([ENABLE_PLUGIN_FREEIPMI], [test "${enable_plugin_freeipmi}" = "yes"])
+# -----------------------------------------------------------------------------
+# systemd-journal.plugin - systemd
+
+LIBS_BAK="${LIBS}"
+
+AC_CHECK_LIB([systemd], [sd_journal_open], [have_systemd_libs=yes], [have_systemd_libs=no])
+AC_CHECK_HEADERS([systemd/sd-journal.h], [have_systemd_journal_header=yes], [have_systemd_journal_header=no])
+
+if test "${have_systemd_libs}" = "yes" -a "${have_systemd_journal_header}" = "yes"; then
+ have_systemd="yes"
+else
+ have_systemd="no"
+fi
+
+test "${enable_plugin_systemd_journal}" = "yes" -a "${have_systemd}" != "yes" && \
+ AC_MSG_ERROR([systemd is required but not found. Try installing 'libsystemd-dev' or 'libsystemd-devel'])
+
+AC_MSG_CHECKING([if systemd-journal.plugin should be enabled])
+if test "${enable_plugin_systemd_journal}" != "no" -a "${have_systemd}" = "yes"; then
+ enable_plugin_systemd_journal="yes"
+ AC_DEFINE([HAVE_SYSTEMD], [1], [systemd usability])
+ OPTIONAL_SYSTEMD_CFLAGS="-I/usr/include"
+ OPTIONAL_SYSTEMD_LIBS="-lsystemd"
+else
+ enable_plugin_systemd_journal="no"
+fi
+AC_MSG_RESULT([${enable_plugin_systemd_journal}])
+AM_CONDITIONAL([ENABLE_PLUGIN_SYSTEMD_JOURNAL], [test "${enable_plugin_systemd_journal}" = "yes"])
+
+AC_MSG_NOTICE([OPTIONAL_SYSTEMD_LIBS is set to: ${OPTIONAL_SYSTEMD_LIBS}])
+
+LIBS="${LIBS_BAK}"
+
# -----------------------------------------------------------------------------
# cups.plugin - libcups
@@ -1874,6 +1913,7 @@ AC_SUBST([OPTIONAL_GTEST_CFLAGS])
AC_SUBST([OPTIONAL_GTEST_LIBS])
AC_SUBST([OPTIONAL_ML_CFLAGS])
AC_SUBST([OPTIONAL_ML_LIBS])
+AC_SUBST(OPTIONAL_SYSTEMD_LIBS)
# -----------------------------------------------------------------------------
# Check if cmocka is available - needed for unit testing
@@ -1937,6 +1977,7 @@ AC_CONFIG_FILES([
collectors/tc.plugin/Makefile
collectors/xenstat.plugin/Makefile
collectors/perf.plugin/Makefile
+ collectors/systemd-journal.plugin/Makefile
daemon/Makefile
database/Makefile
database/contexts/Makefile
@@ -1968,6 +2009,7 @@ AC_CONFIG_FILES([
libnetdata/dictionary/Makefile
libnetdata/ebpf/Makefile
libnetdata/eval/Makefile
+ libnetdata/facets/Makefile
libnetdata/july/Makefile
libnetdata/locks/Makefile
libnetdata/log/Makefile
diff --git a/contrib/debian/control b/contrib/debian/control
index f326c4b90..e2b0ca140 100644
--- a/contrib/debian/control
+++ b/contrib/debian/control
@@ -54,6 +54,7 @@ Conflicts: netdata-core,
netdata-web
Suggests: netdata-plugin-cups,
netdata-plugin-freeipmi
+Recommends: netdata-plugin-systemd-journal
Description: real-time charts for system monitoring
Netdata is a daemon that collects data in realtime (per second)
and presents a web site to view and analyze them. The presentation
@@ -182,10 +183,21 @@ Description: The perf metrics collector for the Netdata Agent
Package: netdata-plugin-debugfs
Architecture: any
-Depends: ${shlibs:Debends},
+Depends: ${shlibs:Depends},
netdata (= ${source:Version})
Pre-Depends: libcap2-bin, adduser
Conflicts: netdata (<< ${source:Version})
Description: The debugfs metrics collector for the Netdata Agent
This plugin allows the Netdata Agent to collect Linux kernel metrics
exposed through debugfs.
+
+Package: netdata-plugin-systemd-journal
+Architecture: any
+Depends: ${shlibs:Depends},
+ netdata (= ${source:Version})
+Pre-Depends: libcap2-bin, adduser
+Build-Depends: libsystemd-dev
+Conflicts: netdata (<< ${source:Version})
+Description: The systemd-journal collector for the Netdata Agent
+ This plugin allows the Netdata Agent to present logs from the systemd
+ journal on Netdata Cloud or the local Agent dashboard.
diff --git a/contrib/debian/control.xenial b/contrib/debian/control.xenial
deleted file mode 100644
index 43246d716..000000000
--- a/contrib/debian/control.xenial
+++ /dev/null
@@ -1,61 +0,0 @@
-Source: netdata
-Build-Depends: debhelper (>= 9),
- dh-autoreconf,
- dh-systemd (>= 1.5),
- dpkg-dev (>= 1.13.19),
- zlib1g-dev,
- uuid-dev,
- libelf-dev,
- libuv1-dev,
- liblz4-dev,
- libssl-dev,
- libmnl-dev,
- libjson-c-dev,
- libcups2-dev,
- libipmimonitoring-dev,
- libnetfilter-acct-dev,
- libsnappy-dev,
- libprotobuf-dev,
- libprotoc-dev,
- cmake,
- autogen,
- autoconf,
- automake,
- pkg-config,
- curl,
- protobuf-compiler
-Section: net
-Priority: optional
-Maintainer: Netdata Builder
-Standards-Version: 3.9.6
-Homepage: https://netdata.cloud
-
-Package: netdata
-Architecture: any
-Depends: adduser,
- libcap2-bin (>= 1:2.0),
- lsb-base (>= 3.1-23.2),
- openssl,
- ${misc:Depends},
- ${shlibs:Depends}
-Pre-Depends: dpkg (>= 1.17.14)
-Description: real-time charts for system monitoring
- Netdata is a daemon that collects data in realtime (per second)
- and presents a web site to view and analyze them. The presentation
- is also real-time and full of interactive charts that precisely
- render all collected values.
-
-Package: netdata-plugin-cups
-Architecture: any
-Depends: cups,
- netdata (>= ${source:Version})
-Description: The Common Unix Printing System plugin for metrics collection from cupsd
-
-Package: netdata-plugin-freeipmi
-Architecture: any
-Depends: freeipmi,
- netdata (= ${source:Version})
-Description: FreeIPMI - The Intelligent Platform Management System.
- The IPMI specification defines a set of interfaces for platform management.
- It is implemented by a number vendors for system management. The features of IPMI that most users will be interested in
- are sensor monitoring, system event monitoring, power control, and serial-over-LAN (SOL).
diff --git a/contrib/debian/netdata-plugin-systemd-journal.postinst b/contrib/debian/netdata-plugin-systemd-journal.postinst
new file mode 100644
index 000000000..d2f71970f
--- /dev/null
+++ b/contrib/debian/netdata-plugin-systemd-journal.postinst
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ configure|reconfigure)
+ chown root:netdata /usr/libexec/netdata/plugins.d/systemd-journal.plugin
+ setcap "cap_dac_read_search=eip" /usr/libexec/netdata/plugins.d/systemd-journal.plugin
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
diff --git a/contrib/debian/netdata-plugin-systemd-journal.preinst b/contrib/debian/netdata-plugin-systemd-journal.preinst
new file mode 100644
index 000000000..fcabb415a
--- /dev/null
+++ b/contrib/debian/netdata-plugin-systemd-journal.preinst
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ install)
+ if ! getent group netdata > /dev/null; then
+ addgroup --quiet --system netdata
+ fi
+ ;;
+esac
+
+#DEBHELPER#
diff --git a/contrib/debian/rules b/contrib/debian/rules
index 3fe4e63fa..c1dbb6f61 100755
--- a/contrib/debian/rules
+++ b/contrib/debian/rules
@@ -125,6 +125,11 @@ override_dh_install:
mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/debugfs.plugin \
$(TOP)-plugin-debugfs/usr/libexec/netdata/plugins.d/debugfs.plugin
+ # Add systemd-journal plugin install rules
+ mkdir -p $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/
+ mv -f $(TEMPTOP)/usr/libexec/netdata/plugins.d/systemd-journal.plugin \
+ $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin; \
+
# Set the rest of the software in the main package
#
cp -rp $(TEMPTOP)/usr $(TOP)
@@ -213,6 +218,9 @@ override_dh_fixperms:
# local-listeners
chmod 4750 $(TOP)/usr/libexec/netdata/plugins.d/local-listeners
+ # systemd-journal
+ chmod 4750 $(TOP)-plugin-systemd-journal/usr/libexec/netdata/plugins.d/systemd-journal.plugin
+
override_dh_installlogrotate:
cp system/logrotate/netdata debian/netdata.logrotate
dh_installlogrotate
diff --git a/daemon/README.md b/daemon/README.md
index 65ac105c6..3fb33e5c7 100644
--- a/daemon/README.md
+++ b/daemon/README.md
@@ -104,7 +104,7 @@ The command line options of the Netdata 1.10.0 version are the following:
-W simple-pattern pattern string
Check if string matches pattern and exit.
- -W "claim -token=TOKEN -rooms=ROOM1,ROOM2 url=https://api.netdata.cloud"
+ -W "claim -token=TOKEN -rooms=ROOM1,ROOM2 url=https://app.netdata.cloud"
Connect the agent to the workspace rooms pointed to by TOKEN and ROOM*.
Signals netdata handles:
diff --git a/daemon/anonymous-statistics.sh.in b/daemon/anonymous-statistics.sh.in
index 32cbc71db..6b27dfea4 100755
--- a/daemon/anonymous-statistics.sh.in
+++ b/daemon/anonymous-statistics.sh.in
@@ -71,6 +71,23 @@ NETDATA_PREBUILT_DISTRO="${42}"
[ -z "$NETDATA_REGISTRY_UNIQUE_ID" ] && NETDATA_REGISTRY_UNIQUE_ID="00000000-0000-0000-0000-000000000000"
+KERNEL_NAME="$(uname -s)"
+MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)"
+
+if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then
+ SYSTEM_DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')"
+elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then
+ SYSTEM_DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")"
+elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
+ SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")"
+elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
+ SYSTEM_DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")"
+elif command -v uuidgen > /dev/null 2>&1; then
+ SYSTEM_DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')"
+else
+ SYSTEM_DISTINCT_ID="null"
+fi
+
# define body of request to be sent
REQ_BODY="$(cat << EOF
{
@@ -105,6 +122,7 @@ REQ_BODY="$(cat << EOF
"system_virt_detection": "${NETDATA_SYSTEM_VIRT_DETECTION}",
"system_container": "${NETDATA_SYSTEM_CONTAINER}",
"system_container_detection": "${NETDATA_SYSTEM_CONTAINER_DETECTION}",
+ "system_distinct_id": "${SYSTEM_DISTINCT_ID}",
"container_os_name": "${NETDATA_CONTAINER_OS_NAME}",
"container_os_id": "${NETDATA_CONTAINER_OS_ID}",
"container_os_id_like": "${NETDATA_CONTAINER_OS_ID_LIKE}",
diff --git a/daemon/buildinfo.c b/daemon/buildinfo.c
index 56cde84fc..4bc1e72a4 100644
--- a/daemon/buildinfo.c
+++ b/daemon/buildinfo.c
@@ -1469,7 +1469,7 @@ void print_build_info_json(void) {
populate_directories();
BUFFER *b = buffer_create(0, NULL);
- buffer_json_initialize(b, "\"", "\"", 0, true, false);
+ buffer_json_initialize(b, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
build_info_to_json_object(b);
diff --git a/daemon/commands.c b/daemon/commands.c
index 84298416e..a8afb5a00 100644
--- a/daemon/commands.c
+++ b/daemon/commands.c
@@ -407,7 +407,7 @@ static void pipe_write_cb(uv_write_t* req, int status)
uv_close((uv_handle_t *)client, pipe_close_cb);
--clients;
buffer_free(client->data);
- netdata_log_info("Command Clients = %u\n", clients);
+ // netdata_log_info("Command Clients = %u", clients);
}
static inline void add_char_to_command_reply(BUFFER *reply_string, unsigned *reply_string_size, char character)
@@ -557,7 +557,7 @@ static void pipe_read_cb(uv_stream_t *client, ssize_t nread, const uv_buf_t *buf
if (nread < 0 && UV_EOF != nread) {
uv_close((uv_handle_t *)client, pipe_close_cb);
--clients;
- netdata_log_info("Command Clients = %u\n", clients);
+ // netdata_log_info("Command Clients = %u", clients);
}
}
@@ -593,7 +593,7 @@ static void connection_cb(uv_stream_t *server, int status)
}
++clients;
- netdata_log_info("Command Clients = %u\n", clients);
+ // netdata_log_info("Command Clients = %u", clients);
/* Start parsing a new command */
cmd_ctx->command_string_size = 0;
cmd_ctx->command_string[0] = '\0';
@@ -603,7 +603,7 @@ static void connection_cb(uv_stream_t *server, int status)
netdata_log_error("uv_read_start(): %s", uv_strerror(ret));
uv_close((uv_handle_t *)client, pipe_close_cb);
--clients;
- netdata_log_info("Command Clients = %u\n", clients);
+ // netdata_log_info("Command Clients = %u", clients);
return;
}
}
diff --git a/daemon/daemon.c b/daemon/daemon.c
index 0d1d17324..c7f0b51c6 100644
--- a/daemon/daemon.c
+++ b/daemon/daemon.c
@@ -4,11 +4,11 @@
#include
char pidfile[FILENAME_MAX + 1] = "";
-char claimingdirectory[FILENAME_MAX + 1];
-char exepath[FILENAME_MAX + 1];
+char claiming_directory[FILENAME_MAX + 1];
+char netdata_exe_path[FILENAME_MAX + 1];
+char netdata_exe_file[FILENAME_MAX + 1];
-void get_netdata_execution_path(void)
-{
+void get_netdata_execution_path(void) {
int ret;
size_t exepath_size = 0;
struct passwd *passwd = NULL;
@@ -17,14 +17,18 @@ void get_netdata_execution_path(void)
passwd = getpwuid(getuid());
user = (passwd && passwd->pw_name) ? passwd->pw_name : "";
- exepath_size = sizeof(exepath) - 1;
- ret = uv_exepath(exepath, &exepath_size);
+ exepath_size = sizeof(netdata_exe_file) - 1;
+ ret = uv_exepath(netdata_exe_file, &exepath_size);
if (0 != ret) {
- netdata_log_error("uv_exepath(\"%s\", %u) (user: %s) failed (%s).", exepath, (unsigned)exepath_size, user,
- uv_strerror(ret));
+ netdata_log_error("uv_exepath(\"%s\", %u) (user: %s) failed (%s).", netdata_exe_file, (unsigned)exepath_size, user,
+ uv_strerror(ret));
fatal("Cannot start netdata without getting execution path.");
}
- exepath[exepath_size] = '\0';
+
+ netdata_exe_file[exepath_size] = '\0';
+
+ strcpy(netdata_exe_path, netdata_exe_file);
+ dirname(netdata_exe_path);
}
static void chown_open_file(int fd, uid_t uid, gid_t gid) {
@@ -99,7 +103,7 @@ void prepare_required_directories(uid_t uid, gid_t gid) {
change_dir_ownership(netdata_configured_varlib_dir, uid, gid, false);
change_dir_ownership(netdata_configured_lock_dir, uid, gid, false);
change_dir_ownership(netdata_configured_log_dir, uid, gid, false);
- change_dir_ownership(claimingdirectory, uid, gid, false);
+ change_dir_ownership(claiming_directory, uid, gid, false);
char filename[FILENAME_MAX + 1];
snprintfz(filename, FILENAME_MAX, "%s/registry", netdata_configured_varlib_dir);
@@ -516,7 +520,7 @@ int become_daemon(int dont_fork, const char *user)
sched_setscheduler_set();
// Set claiming directory based on user config directory with correct ownership
- snprintfz(claimingdirectory, FILENAME_MAX, "%s/cloud.d", netdata_configured_varlib_dir);
+ snprintfz(claiming_directory, FILENAME_MAX, "%s/cloud.d", netdata_configured_varlib_dir);
if(user && *user) {
if(become_user(user, pidfd) != 0) {
diff --git a/daemon/daemon.h b/daemon/daemon.h
index 2a8a58ec6..7c4c2ce7e 100644
--- a/daemon/daemon.h
+++ b/daemon/daemon.h
@@ -13,6 +13,7 @@ void send_statistics(const char *action, const char *action_result, const char *
void get_netdata_execution_path(void);
extern char pidfile[];
-extern char exepath[];
+extern char netdata_exe_file[];
+extern char netdata_exe_path[];
#endif /* NETDATA_DAEMON_H */
diff --git a/daemon/main.c b/daemon/main.c
index 13644d4b6..6ddf57aa1 100644
--- a/daemon/main.c
+++ b/daemon/main.c
@@ -1332,6 +1332,7 @@ int mrg_unittest(void);
int julytest(void);
int pluginsd_parser_unittest(void);
void replication_initialize(void);
+void bearer_tokens_init(void);
int main(int argc, char **argv) {
// initialize the system clocks
@@ -1937,6 +1938,8 @@ int main(int argc, char **argv) {
signals_block();
signals_init(); // setup the signals we want to use
+ dyn_conf_init();
+
// --------------------------------------------------------------------
// check which threads are enabled and initialize them
diff --git a/daemon/static_threads.c b/daemon/static_threads.c
index 4ee2a4668..830b854e6 100644
--- a/daemon/static_threads.c
+++ b/daemon/static_threads.c
@@ -195,6 +195,15 @@ const struct netdata_static_thread static_threads_common[] = {
.init_routine = NULL,
.start_routine = profile_main
},
+ {
+ .name = "DYNCFG",
+ .config_section = NULL,
+ .config_name = NULL,
+ .enabled = 1,
+ .thread = NULL,
+ .init_routine = NULL,
+ .start_routine = dyncfg_main
+ },
// terminator
{
diff --git a/daemon/system-info.sh b/daemon/system-info.sh
index 43f761c2d..2a3ba7d76 100755
--- a/daemon/system-info.sh
+++ b/daemon/system-info.sh
@@ -313,7 +313,7 @@ elif [ -r /proc/cpuinfo ]; then
if (echo "${CPU_INFO_SOURCE}" | grep -qv procfs); then
CPU_INFO_SOURCE="${CPU_INFO_SOURCE} procfs"
fi
- value=$(grep "cpu MHz" /proc/cpuinfo 2>/dev/null | grep -o "[0-9]*" | head -n 1 | awk '{print int($0*1000000)}')
+ value=$(grep "cpu MHz" /proc/cpuinfo 2>/dev/null | grep -o "[0-9]*" | head -n 1 | awk '{printf "%0.f",int($0*1000000)}')
[ -n "$value" ] && CPU_FREQ="$value"
fi
diff --git a/database/contexts/api_v1.c b/database/contexts/api_v1.c
index b4bcfe4ae..bc7fee496 100644
--- a/database/contexts/api_v1.c
+++ b/database/contexts/api_v1.c
@@ -148,7 +148,7 @@ static inline int rrdinstance_to_json_callback(const DICTIONARY_ITEM *item, void
if(options & RRDCONTEXT_OPTION_SHOW_METRICS || t_parent->chart_dimensions) {
wb_metrics = buffer_create(4096, &netdata_buffers_statistics.buffers_api);
- buffer_json_initialize(wb_metrics, "\"", "\"", wb->json.depth + 2, false, false);
+ buffer_json_initialize(wb_metrics, "\"", "\"", wb->json.depth + 2, false, BUFFER_JSON_OPTIONS_DEFAULT);
struct rrdcontext_to_json t_metrics = {
.wb = wb_metrics,
@@ -268,7 +268,7 @@ static inline int rrdcontext_to_json_callback(const DICTIONARY_ITEM *item, void
|| t_parent->chart_dimensions) {
wb_instances = buffer_create(4096, &netdata_buffers_statistics.buffers_api);
- buffer_json_initialize(wb_instances, "\"", "\"", wb->json.depth + 2, false, false);
+ buffer_json_initialize(wb_instances, "\"", "\"", wb->json.depth + 2, false, BUFFER_JSON_OPTIONS_DEFAULT);
struct rrdcontext_to_json t_instances = {
.wb = wb_instances,
@@ -366,9 +366,9 @@ int rrdcontext_to_json(RRDHOST *host, BUFFER *wb, time_t after, time_t before, R
RRDCONTEXT *rc = rrdcontext_acquired_value(rca);
if(after != 0 && before != 0)
- rrdr_relative_window_to_absolute(&after, &before, NULL);
+ rrdr_relative_window_to_absolute(&after, &before, NULL, false);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
struct rrdcontext_to_json t_contexts = {
.wb = wb,
.options = options|RRDCONTEXT_OPTION_SKIP_ID,
@@ -403,9 +403,9 @@ int rrdcontexts_to_json(RRDHOST *host, BUFFER *wb, time_t after, time_t before,
uuid_unparse(*host->node_id, node_uuid);
if(after != 0 && before != 0)
- rrdr_relative_window_to_absolute(&after, &before, NULL);
+ rrdr_relative_window_to_absolute(&after, &before, NULL, false);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(wb, "hostname", rrdhost_hostname(host));
buffer_json_member_add_string(wb, "machine_guid", host->machine_guid);
buffer_json_member_add_string(wb, "node_id", node_uuid);
diff --git a/database/contexts/api_v2.c b/database/contexts/api_v2.c
index ed7f955ad..08739160d 100644
--- a/database/contexts/api_v2.c
+++ b/database/contexts/api_v2.c
@@ -1104,9 +1104,20 @@ static bool contexts_conflict_callback(const DICTIONARY_ITEM *item __maybe_unuse
o->count++;
if(o->family != n->family) {
- STRING *m = string_2way_merge(o->family, n->family);
- string_freez(o->family);
- o->family = m;
+ if((o->flags & RRD_FLAG_COLLECTED) && !(n->flags & RRD_FLAG_COLLECTED))
+ // keep old
+ ;
+ else if(!(o->flags & RRD_FLAG_COLLECTED) && (n->flags & RRD_FLAG_COLLECTED)) {
+ // keep new
+ string_freez(o->family);
+ o->family = string_dup(n->family);
+ }
+ else {
+ // merge
+ STRING *old_family = o->family;
+ o->family = string_2way_merge(o->family, n->family);
+ string_freez(old_family);
+ }
}
if(o->priority != n->priority) {
@@ -1287,7 +1298,7 @@ int contexts_v2_alert_config_to_json(struct web_client *w, const char *config_ha
buffer_flush(w->response.data);
- buffer_json_initialize(w->response.data, "\"", "\"", 0, true, false);
+ buffer_json_initialize(w->response.data, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
int added = sql_get_alert_configuration(configs, contexts_v2_alert_config_to_json_from_sql_alert_config_data, &data, false);
buffer_json_finalize(w->response.data);
@@ -1923,14 +1934,14 @@ int rrdcontext_to_json_v2(BUFFER *wb, struct api_v2_contexts_request *req, CONTE
}
if(req->after || req->before) {
- ctl.window.relative = rrdr_relative_window_to_absolute(&ctl.window.after, &ctl.window.before, &ctl.now);
+ ctl.window.relative = rrdr_relative_window_to_absolute(&ctl.window.after, &ctl.window.before, &ctl.now, false);
ctl.window.enabled = !(mode & CONTEXTS_V2_ALERT_TRANSITIONS);
}
else
ctl.now = now_realtime_sec();
- buffer_json_initialize(wb, "\"", "\"", 0,
- true, (req->options & CONTEXT_V2_OPTION_MINIFY) && !(req->options & CONTEXT_V2_OPTION_DEBUG));
+ buffer_json_initialize(wb, "\"", "\"", 0, true,
+ ((req->options & CONTEXT_V2_OPTION_MINIFY) && !(req->options & CONTEXT_V2_OPTION_DEBUG)) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_uint64(wb, "api", 2);
diff --git a/database/contexts/context.c b/database/contexts/context.c
index 47946f1e0..5613c63cf 100644
--- a/database/contexts/context.c
+++ b/database/contexts/context.c
@@ -94,6 +94,93 @@ static void rrdcontext_delete_callback(const DICTIONARY_ITEM *item __maybe_unuse
rrdcontext_freez(rc);
}
+typedef enum __attribute__((packed)) {
+ OLDNEW_KEEP_OLD,
+ OLDNEW_USE_NEW,
+ OLDNEW_MERGE,
+} OLDNEW;
+
+static inline OLDNEW oldnew_decide(bool archived, bool new_archived) {
+ if(archived && !new_archived)
+ return OLDNEW_USE_NEW;
+
+ if(!archived && new_archived)
+ return OLDNEW_KEEP_OLD;
+
+ return OLDNEW_MERGE;
+}
+
+static inline void string_replace(STRING **stringpp, STRING *new_string) {
+ STRING *old = *stringpp;
+ *stringpp = string_dup(new_string);
+ string_freez(old);
+}
+
+static inline void string_merge(STRING **stringpp, STRING *new_string) {
+ STRING *old = *stringpp;
+ *stringpp = string_2way_merge(*stringpp, new_string);
+ string_freez(old);
+}
+
+static void rrdcontext_merge_with(RRDCONTEXT *rc, bool archived, STRING *title, STRING *family, STRING *units, RRDSET_TYPE chart_type, uint32_t priority) {
+ OLDNEW oldnew = oldnew_decide(rrd_flag_is_archived(rc), archived);
+
+ switch(oldnew) {
+ case OLDNEW_KEEP_OLD:
+ break;
+
+ case OLDNEW_USE_NEW:
+ if(rc->title != title) {
+ string_replace(&rc->title, title);
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+ if(rc->family != family) {
+ string_replace(&rc->family, family);
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+ break;
+
+ case OLDNEW_MERGE:
+ if(rc->title != title) {
+ string_merge(&rc->title, title);
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+ if(rc->family != family) {
+ string_merge(&rc->family, family);
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+ break;
+ }
+
+ switch(oldnew) {
+ case OLDNEW_KEEP_OLD:
+ break;
+
+ case OLDNEW_USE_NEW:
+ case OLDNEW_MERGE:
+ if(rc->units != units) {
+ string_replace(&rc->units, units);
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+
+ if(rc->chart_type != chart_type) {
+ rc->chart_type = chart_type;
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+
+ if(rc->priority != priority) {
+ rc->priority = priority;
+ rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
+ }
+ break;
+ }
+}
+
+void rrdcontext_update_from_collected_rrdinstance(RRDINSTANCE *ri) {
+ rrdcontext_merge_with(ri->rc, rrd_flag_is_archived(ri),
+ ri->title, ri->family, ri->units, ri->chart_type, ri->priority);
+}
+
static bool rrdcontext_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *rrdhost __maybe_unused) {
RRDCONTEXT *rc = (RRDCONTEXT *)old_value;
RRDCONTEXT *rc_new = (RRDCONTEXT *)new_value;
@@ -106,42 +193,8 @@ static bool rrdcontext_conflict_callback(const DICTIONARY_ITEM *item __maybe_unu
rrdcontext_lock(rc);
- if(rc->title != rc_new->title) {
- STRING *old_title = rc->title;
- if (rrd_flag_is_archived(rc) && !rrd_flag_is_archived(rc_new))
- rc->title = string_dup(rc_new->title);
- else
- rc->title = string_2way_merge(rc->title, rc_new->title);
- string_freez(old_title);
- rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
- }
-
- if(rc->units != rc_new->units) {
- STRING *old_units = rc->units;
- rc->units = string_dup(rc_new->units);
- string_freez(old_units);
- rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
- }
-
- if(rc->family != rc_new->family) {
- STRING *old_family = rc->family;
- if (rrd_flag_is_archived(rc) && !rrd_flag_is_archived(rc_new))
- rc->family = string_dup(rc_new->family);
- else
- rc->family = string_2way_merge(rc->family, rc_new->family);
- string_freez(old_family);
- rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
- }
-
- if(rc->chart_type != rc_new->chart_type) {
- rc->chart_type = rc_new->chart_type;
- rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
- }
-
- if(rc->priority != rc_new->priority) {
- rc->priority = rc_new->priority;
- rrd_flag_set_updated(rc, RRD_FLAG_UPDATE_REASON_CHANGED_METADATA);
- }
+ rrdcontext_merge_with(rc, rrd_flag_is_archived(rc_new),
+ rc_new->title, rc_new->family, rc_new->units, rc_new->chart_type, rc_new->priority);
rrd_flag_set(rc, rc_new->flags & RRD_FLAGS_ALLOWED_EXTERNALLY_ON_NEW_OBJECTS); // no need for atomics on rc_new
diff --git a/database/contexts/internal.h b/database/contexts/internal.h
index c5663dd24..04ad0883a 100644
--- a/database/contexts/internal.h
+++ b/database/contexts/internal.h
@@ -59,6 +59,8 @@ typedef enum __attribute__ ((__packed__)) {
RRD_FLAG_UPDATE_REASON_UNUSED = (1 << 21), // this context is not used anymore
RRD_FLAG_UPDATE_REASON_DB_ROTATION = (1 << 22), // this context changed because of a db rotation
+ RRD_FLAG_MERGED_COLLECTED_RI_TO_RC = (1 << 29),
+
// action to perform on an object
RRD_FLAG_UPDATE_REASON_UPDATE_RETENTION = (1 << 30), // this object has to update its retention from the db
} RRD_FLAGS;
@@ -381,4 +383,6 @@ uint64_t rrdcontext_version_hash_with_callback(
void rrdcontext_message_send_unsafe(RRDCONTEXT *rc, bool snapshot __maybe_unused, void *bundle __maybe_unused);
+void rrdcontext_update_from_collected_rrdinstance(RRDINSTANCE *ri);
+
#endif //NETDATA_RRDCONTEXT_INTERNAL_H
diff --git a/database/contexts/query_target.c b/database/contexts/query_target.c
index 508977ce7..829640b90 100644
--- a/database/contexts/query_target.c
+++ b/database/contexts/query_target.c
@@ -1052,7 +1052,8 @@ QUERY_TARGET *query_target_create(QUERY_TARGET_REQUEST *qtr) {
if(query_target_has_percentage_of_group(qt))
qt->window.options &= ~RRDR_OPTION_PERCENTAGE;
- rrdr_relative_window_to_absolute(&qt->window.after, &qt->window.before, &qt->window.now);
+ qt->internal.relative = rrdr_relative_window_to_absolute(&qt->window.after, &qt->window.before, &qt->window.now,
+ unittest_running);
// prepare our local variables - we need these across all these functions
QUERY_TARGET_LOCALS qtl = {
diff --git a/database/contexts/rrdcontext.h b/database/contexts/rrdcontext.h
index e3a1ab9af..0bcdb68de 100644
--- a/database/contexts/rrdcontext.h
+++ b/database/contexts/rrdcontext.h
@@ -409,6 +409,7 @@ typedef struct query_target {
struct {
SPINLOCK spinlock;
bool used; // when true, this query is currently being used
+ bool relative; // when true, this query uses relative timestamps
size_t queries; // how many query we have done so far with this QUERY_TARGET - not related to database queries
struct query_target *prev;
struct query_target *next;
diff --git a/database/contexts/worker.c b/database/contexts/worker.c
index e6c3ff3df..9d7c18863 100644
--- a/database/contexts/worker.c
+++ b/database/contexts/worker.c
@@ -611,6 +611,13 @@ static void rrdcontext_post_process_updates(RRDCONTEXT *rc, bool force, RRD_FLAG
continue;
}
+ bool ri_collected = rrd_flag_is_collected(ri);
+
+ if(ri_collected && !rrd_flag_check(ri, RRD_FLAG_MERGED_COLLECTED_RI_TO_RC)) {
+ rrdcontext_update_from_collected_rrdinstance(ri);
+ rrd_flag_set(ri, RRD_FLAG_MERGED_COLLECTED_RI_TO_RC);
+ }
+
if(unlikely(!currently_collected && rrd_flag_is_collected(ri) && ri->first_time_s))
currently_collected = true;
diff --git a/database/engine/journalfile.c b/database/engine/journalfile.c
index 24d3c1c6d..abb9d2eb9 100644
--- a/database/engine/journalfile.c
+++ b/database/engine/journalfile.c
@@ -696,12 +696,12 @@ static void journalfile_restore_extent_metadata(struct rrdengine_instance *ctx,
bool update_metric_time = true;
if (!metric) {
MRG_ENTRY entry = {
+ .uuid = temp_id,
.section = (Word_t)ctx,
.first_time_s = vd.start_time_s,
.last_time_s = vd.end_time_s,
.latest_update_every_s = (uint32_t) vd.update_every_s,
};
- uuid_copy(entry.uuid, *temp_id);
bool added;
metric = mrg_metric_add_and_acquire(main_mrg, entry, &added);
diff --git a/database/engine/metric.c b/database/engine/metric.c
index 1370f9d7a..0b248c09b 100644
--- a/database/engine/metric.c
+++ b/database/engine/metric.c
@@ -166,7 +166,7 @@ static inline bool metric_release_and_can_be_deleted(MRG *mrg __maybe_unused, ME
}
static inline METRIC *metric_add_and_acquire(MRG *mrg, MRG_ENTRY *entry, bool *ret) {
- size_t partition = uuid_partition(mrg, &entry->uuid);
+ size_t partition = uuid_partition(mrg, entry->uuid);
METRIC *allocation = aral_mallocz(mrg->index[partition].aral);
@@ -174,7 +174,7 @@ static inline METRIC *metric_add_and_acquire(MRG *mrg, MRG_ENTRY *entry, bool *r
size_t mem_before_judyl, mem_after_judyl;
- Pvoid_t *sections_judy_pptr = JudyHSIns(&mrg->index[partition].uuid_judy, &entry->uuid, sizeof(uuid_t), PJE0);
+ Pvoid_t *sections_judy_pptr = JudyHSIns(&mrg->index[partition].uuid_judy, entry->uuid, sizeof(uuid_t), PJE0);
if(unlikely(!sections_judy_pptr || sections_judy_pptr == PJERR))
fatal("DBENGINE METRIC: corrupted UUIDs JudyHS array");
@@ -207,8 +207,7 @@ static inline METRIC *metric_add_and_acquire(MRG *mrg, MRG_ENTRY *entry, bool *r
}
METRIC *metric = allocation;
- // memcpy(metric->uuid, entry->uuid, sizeof(uuid_t));
- uuid_copy(metric->uuid, entry->uuid);
+ uuid_copy(metric->uuid, *entry->uuid);
metric->section = entry->section;
metric->first_time_s = MAX(0, entry->first_time_s);
metric->latest_time_s_clean = MAX(0, entry->last_time_s);
@@ -690,13 +689,12 @@ inline void mrg_update_metric_retention_and_granularity_by_uuid(
METRIC *metric = mrg_metric_get_and_acquire(mrg, uuid, section);
if (!metric) {
MRG_ENTRY entry = {
+ .uuid = uuid,
.section = section,
.first_time_s = first_time_s,
.last_time_s = last_time_s,
.latest_update_every_s = (uint32_t) update_every_s
};
- // memcpy(entry.uuid, *uuid, sizeof(uuid_t));
- uuid_copy(entry.uuid, *uuid);
metric = mrg_metric_add_and_acquire(mrg, entry, &added);
}
@@ -788,13 +786,15 @@ int mrg_unittest(void) {
METRIC *m1_t1, *m2_t1, *m3_t1, *m4_t1;
bool ret;
+ uuid_t test_uuid;
+ uuid_generate(test_uuid);
MRG_ENTRY entry = {
+ .uuid = &test_uuid,
.section = 0,
.first_time_s = 2,
.last_time_s = 3,
.latest_update_every_s = 4,
};
- uuid_generate(entry.uuid);
m1_t0 = mrg_metric_add_and_acquire(mrg, entry, &ret);
if(!ret)
fatal("DBENGINE METRIC: failed to add metric");
@@ -806,7 +806,7 @@ int mrg_unittest(void) {
if(ret)
fatal("DBENGINE METRIC: managed to add the same metric twice");
- m3_t0 = mrg_metric_get_and_acquire(mrg, &entry.uuid, entry.section);
+ m3_t0 = mrg_metric_get_and_acquire(mrg, entry.uuid, entry.section);
if(m3_t0 != m1_t0)
fatal("DBENGINE METRIC: cannot find the metric added");
@@ -830,7 +830,7 @@ int mrg_unittest(void) {
if(ret)
fatal("DBENGINE METRIC: managed to add the same metric twice in (section 0)");
- m3_t1 = mrg_metric_get_and_acquire(mrg, &entry.uuid, entry.section);
+ m3_t1 = mrg_metric_get_and_acquire(mrg, entry.uuid, entry.section);
if(m3_t1 != m1_t1)
fatal("DBENGINE METRIC: cannot find the metric added (section %zu)", (size_t)entry.section);
@@ -844,7 +844,7 @@ int mrg_unittest(void) {
if(!mrg_metric_release_and_delete(mrg, m1_t0))
fatal("DBENGINE METRIC: cannot delete the first metric");
- m4_t1 = mrg_metric_get_and_acquire(mrg, &entry.uuid, entry.section);
+ m4_t1 = mrg_metric_get_and_acquire(mrg, entry.uuid, entry.section);
if(m4_t1 != m1_t1)
fatal("DBENGINE METRIC: cannot find the metric added (section %zu), after deleting the first one", (size_t)entry.section);
diff --git a/database/engine/metric.h b/database/engine/metric.h
index 5cb5b045e..5d5ebd7b1 100644
--- a/database/engine/metric.h
+++ b/database/engine/metric.h
@@ -9,7 +9,7 @@ typedef struct metric METRIC;
typedef struct mrg MRG;
typedef struct mrg_entry {
- uuid_t uuid;
+ uuid_t *uuid;
Word_t section;
time_t first_time_s;
time_t last_time_s;
diff --git a/database/engine/rrdengineapi.c b/database/engine/rrdengineapi.c
index 49df5c814..264cbdfeb 100755
--- a/database/engine/rrdengineapi.c
+++ b/database/engine/rrdengineapi.c
@@ -131,12 +131,12 @@ static METRIC *rrdeng_metric_create(STORAGE_INSTANCE *db_instance, uuid_t *uuid)
struct rrdengine_instance *ctx = (struct rrdengine_instance *)db_instance;
MRG_ENTRY entry = {
+ .uuid = uuid,
.section = (Word_t)ctx,
.first_time_s = 0,
.last_time_s = 0,
.latest_update_every_s = 0,
};
- uuid_copy(entry.uuid, *uuid);
METRIC *metric = mrg_metric_add_and_acquire(main_mrg, entry, NULL);
return metric;
diff --git a/database/rrd.h b/database/rrd.h
index 95da17c82..ea211f64e 100644
--- a/database/rrd.h
+++ b/database/rrd.h
@@ -1045,6 +1045,7 @@ struct alarm_entry {
STRING *name;
STRING *chart;
STRING *chart_context;
+ STRING *chart_name;
STRING *family;
STRING *classification;
@@ -1086,7 +1087,8 @@ struct alarm_entry {
};
#define ae_name(ae) string2str((ae)->name)
-#define ae_chart_name(ae) string2str((ae)->chart)
+#define ae_chart_id(ae) string2str((ae)->chart)
+#define ae_chart_name(ae) string2str((ae)->chart_name)
#define ae_chart_context(ae) string2str((ae)->chart_context)
#define ae_family(ae) string2str((ae)->family)
#define ae_classification(ae) string2str((ae)->classification)
diff --git a/database/rrdcalc.c b/database/rrdcalc.c
index d85825c50..8e41df8d6 100644
--- a/database/rrdcalc.c
+++ b/database/rrdcalc.c
@@ -82,10 +82,14 @@ uint32_t rrdcalc_get_unique_id(RRDHOST *host, STRING *chart, STRING *name, uint3
alarm_id = sql_get_alarm_id(host, chart, name, next_event_id, config_hash_id);
if (!alarm_id) {
- if (unlikely(!host->health_log.next_alarm_id))
- host->health_log.next_alarm_id = (uint32_t)now_realtime_sec();
+ //check possible stored config hash as zeroes or null
+ alarm_id = sql_get_alarm_id_check_zero_hash(host, chart, name, next_event_id, config_hash_id);
+ if (!alarm_id) {
+ if (unlikely(!host->health_log.next_alarm_id))
+ host->health_log.next_alarm_id = (uint32_t)now_realtime_sec();
- alarm_id = host->health_log.next_alarm_id++;
+ alarm_id = host->health_log.next_alarm_id++;
+ }
}
}
@@ -292,6 +296,7 @@ static void rrdcalc_link_to_rrdset(RRDSET *st, RRDCALC *rc) {
rc->name,
rc->rrdset->id,
rc->rrdset->context,
+ rc->rrdset->name,
rc->rrdset->family,
rc->classification,
rc->component,
@@ -336,6 +341,7 @@ static void rrdcalc_unlink_from_rrdset(RRDCALC *rc, bool having_ll_wrlock) {
rc->name,
rc->rrdset->id,
rc->rrdset->context,
+ rc->rrdset->name,
rc->rrdset->family,
rc->classification,
rc->component,
diff --git a/database/rrdfunctions.c b/database/rrdfunctions.c
index cee1ac89e..d32a4b8c9 100644
--- a/database/rrdfunctions.c
+++ b/database/rrdfunctions.c
@@ -270,7 +270,7 @@ static inline size_t sanitize_function_text(char *dst, const char *src, size_t d
// we keep a dictionary per RRDSET with these functions
// the dictionary is created on demand (only when a function is added to an RRDSET)
-typedef enum {
+typedef enum __attribute__((packed)) {
RRD_FUNCTION_LOCAL = (1 << 0),
RRD_FUNCTION_GLOBAL = (1 << 1),
@@ -279,7 +279,7 @@ typedef enum {
struct rrd_collector_function {
bool sync; // when true, the function is called synchronously
- uint8_t options; // RRD_FUNCTION_OPTIONS
+ RRD_FUNCTION_OPTIONS options; // RRD_FUNCTION_OPTIONS
STRING *help;
int timeout; // the default timeout of the function
@@ -814,7 +814,7 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
buffer_flush(wb);
wb->content_type = CT_APPLICATION_JSON;
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(wb, "hostname", rrdhost_hostname(localhost));
buffer_json_member_add_uint64(wb, "status", HTTP_RESP_OK);
@@ -858,8 +858,8 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
// retention
buffer_json_add_array_item_string(wb, rrdhost_hostname(s.host)); // Node
- buffer_json_add_array_item_uint64(wb, s.db.first_time_s * 1000); // dbFrom
- buffer_json_add_array_item_uint64(wb, s.db.last_time_s * 1000); // dbTo
+ buffer_json_add_array_item_uint64(wb, s.db.first_time_s * MSEC_PER_SEC); // dbFrom
+ buffer_json_add_array_item_uint64(wb, s.db.last_time_s * MSEC_PER_SEC); // dbTo
if(s.db.first_time_s && s.db.last_time_s && s.db.last_time_s > s.db.first_time_s)
buffer_json_add_array_item_uint64(wb, s.db.last_time_s - s.db.first_time_s); // dbDuration
@@ -877,7 +877,7 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
// collection
if(s.ingest.since) {
- buffer_json_add_array_item_uint64(wb, s.ingest.since * 1000); // InSince
+ buffer_json_add_array_item_uint64(wb, s.ingest.since * MSEC_PER_SEC); // InSince
buffer_json_add_array_item_time_t(wb, s.now - s.ingest.since); // InAge
}
else {
@@ -897,7 +897,7 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
// streaming
if(s.stream.since) {
- buffer_json_add_array_item_uint64(wb, s.stream.since * 1000); // OutSince
+ buffer_json_add_array_item_uint64(wb, s.stream.since * MSEC_PER_SEC); // OutSince
buffer_json_add_array_item_time_t(wb, s.now - s.stream.since); // OutAge
}
else {
@@ -990,19 +990,19 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
NULL);
buffer_rrdf_table_add_field(wb, field_id++, "dbFrom", "DB Data Retention From",
- RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME,
+ RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME_MS,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MIN, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "dbTo", "DB Data Retention To",
- RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME,
+ RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME_MS,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MAX, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "dbDuration", "DB Data Retention Duration",
- RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION,
+ RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION_S,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MAX, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_NONE, NULL);
@@ -1049,13 +1049,13 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
// --- collection ---
buffer_rrdf_table_add_field(wb, field_id++, "InSince", "Last Data Collection Status Change",
- RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME,
+ RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME_MS,
0, NULL, NAN, RRDF_FIELD_SORT_DESCENDING, NULL,
RRDF_FIELD_SUMMARY_MIN, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_NONE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "InAge", "Last Data Collection Online Status Change Age",
- RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION,
+ RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION_S,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MAX, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
@@ -1124,13 +1124,13 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
// --- streaming ---
buffer_rrdf_table_add_field(wb, field_id++, "OutSince", "Last Streaming Status Change",
- RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME,
+ RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME_MS,
0, NULL, NAN, RRDF_FIELD_SORT_DESCENDING, NULL,
RRDF_FIELD_SUMMARY_MAX, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_NONE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "OutAge", "Last Streaming Status Change Age",
- RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION,
+ RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION_S,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MIN, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
@@ -1242,14 +1242,14 @@ int rrdhost_function_streaming(BUFFER *wb, int timeout __maybe_unused, const cha
buffer_rrdf_table_add_field(wb, field_id++, "OutAttemptSince",
"Last Outbound Connection Attempt Status Change Time",
- RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME,
+ RRDF_FIELD_TYPE_TIMESTAMP, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DATETIME_MS,
0, NULL, NAN, RRDF_FIELD_SORT_DESCENDING, NULL,
RRDF_FIELD_SUMMARY_MAX, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_NONE, NULL);
buffer_rrdf_table_add_field(wb, field_id++, "OutAttemptAge",
"Last Outbound Connection Attempt Status Change Age",
- RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION,
+ RRDF_FIELD_TYPE_DURATION, RRDF_FIELD_VISUAL_VALUE, RRDF_FIELD_TRANSFORM_DURATION_S,
0, NULL, NAN, RRDF_FIELD_SORT_ASCENDING, NULL,
RRDF_FIELD_SUMMARY_MIN, RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_OPTS_VISIBLE, NULL);
diff --git a/database/sqlite/sqlite_aclk_alert.c b/database/sqlite/sqlite_aclk_alert.c
index d57ae043f..f10a866f3 100644
--- a/database/sqlite/sqlite_aclk_alert.c
+++ b/database/sqlite/sqlite_aclk_alert.c
@@ -7,7 +7,7 @@
#include "../../aclk/aclk_alarm_api.h"
#endif
-#define SQL_UPDATE_FILTERED_ALERT "UPDATE aclk_alert_%s SET filtered_alert_unique_id = %u where filtered_alert_unique_id = %u"
+#define SQL_UPDATE_FILTERED_ALERT "UPDATE aclk_alert_%s SET filtered_alert_unique_id = %u, date_created = unixepoch() where filtered_alert_unique_id = %u"
void update_filtered(ALARM_ENTRY *ae, uint32_t unique_id, char *uuid_str) {
char sql[ACLK_SYNC_QUERY_SIZE];
snprintfz(sql, ACLK_SYNC_QUERY_SIZE-1, SQL_UPDATE_FILTERED_ALERT, uuid_str, ae->unique_id, unique_id);
@@ -268,7 +268,7 @@ void aclk_push_alert_event(struct aclk_sync_host_config *wc)
buffer_sprintf(sql, "select aa.sequence_id, hld.unique_id, hld.alarm_id, hl.config_hash_id, hld.updated_by_id, hld.when_key, " \
" hld.duration, hld.non_clear_duration, hld.flags, hld.exec_run_timestamp, hld.delay_up_to_timestamp, hl.name, " \
" hl.chart, hl.family, hl.exec, hl.recipient, ha.source, hl.units, hld.info, hld.exec_code, hld.new_status, " \
- " hld.old_status, hld.delay, hld.new_value, hld.old_value, hld.last_repeat, hl.chart_context, hld.transition_id, hld.alarm_event_id " \
+ " hld.old_status, hld.delay, hld.new_value, hld.old_value, hld.last_repeat, hl.chart_context, hld.transition_id, hld.alarm_event_id, hl.chart_name " \
" from health_log hl, aclk_alert_%s aa, alert_hash ha, health_log_detail hld " \
" where hld.unique_id = aa.alert_unique_id and hl.config_hash_id = ha.hash_id and aa.date_submitted is null " \
" and hl.host_id = @host_id and hl.health_log_id = hld.health_log_id " \
@@ -371,14 +371,12 @@ void aclk_push_alert_event(struct aclk_sync_host_config *wc)
alarm_log.value = (NETDATA_DOUBLE) sqlite3_column_double(res, 23);
alarm_log.old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 24);
-
alarm_log.updated = (sqlite3_column_int64(res, 8) & HEALTH_ENTRY_FLAG_UPDATED) ? 1 : 0;
alarm_log.rendered_info = sqlite3_text_strdupz_empty(res, 18);
-
alarm_log.chart_context = sqlite3_text_strdupz_empty(res, 26);
alarm_log.transition_id = sqlite3_uuid_unparse_strdupz(res, 27);
-
alarm_log.event_id = (time_t) sqlite3_column_int64(res, 28);
+ alarm_log.chart_name = sqlite3_text_strdupz_empty(res, 29);
aclk_send_alarm_log_entry(&alarm_log);
@@ -788,7 +786,7 @@ void health_alarm_entry2proto_nolock(struct alarm_log_entry *alarm_log, ALARM_EN
char transition_id[UUID_STR_LEN];
uuid_unparse_lower(ae->transition_id, transition_id);
- alarm_log->chart = strdupz(ae_chart_name(ae));
+ alarm_log->chart = strdupz(ae_chart_id(ae));
alarm_log->name = strdupz(ae_name(ae));
alarm_log->family = strdupz(ae_family(ae));
@@ -827,6 +825,7 @@ void health_alarm_entry2proto_nolock(struct alarm_log_entry *alarm_log, ALARM_EN
alarm_log->updated = (ae->flags & HEALTH_ENTRY_FLAG_UPDATED) ? 1 : 0;
alarm_log->rendered_info = strdupz(ae_info(ae));
alarm_log->chart_context = strdupz(ae_chart_context(ae));
+ alarm_log->chart_name = strdupz(ae_chart_name(ae));
alarm_log->transition_id = strdupz((char *)transition_id);
alarm_log->event_id = (uint64_t) ae->alarm_event_id;
@@ -980,7 +979,7 @@ void aclk_push_alert_snapshot_event(char *node_id __maybe_unused)
#endif
}
-#define SQL_DELETE_ALERT_ENTRIES "DELETE FROM aclk_alert_%s WHERE filtered_alert_unique_id + %d < UNIXEPOCH();"
+#define SQL_DELETE_ALERT_ENTRIES "DELETE FROM aclk_alert_%s WHERE date_created + %d < UNIXEPOCH();"
void sql_aclk_alert_clean_dead_entries(RRDHOST *host)
{
char uuid_str[UUID_STR_LEN];
diff --git a/database/sqlite/sqlite_db_migration.c b/database/sqlite/sqlite_db_migration.c
index 1a6233fce..548b7de07 100644
--- a/database/sqlite/sqlite_db_migration.c
+++ b/database/sqlite/sqlite_db_migration.c
@@ -83,6 +83,11 @@ const char *database_migrate_v9_v10[] = {
NULL
};
+const char *database_migrate_v10_v11[] = {
+ "ALTER TABLE health_log ADD chart_name TEXT;",
+ NULL
+};
+
static int do_migration_v1_v2(sqlite3 *database, const char *name)
{
UNUSED(name);
@@ -293,7 +298,6 @@ static int do_migration_v8_v9(sqlite3 *database, const char *name)
static int do_migration_v9_v10(sqlite3 *database, const char *name)
{
- UNUSED(name);
netdata_log_info("Running \"%s\" database migration", name);
if (table_exists_in_database("alert_hash") && !column_exists_in_table("alert_hash", "chart_labels"))
@@ -301,6 +305,16 @@ static int do_migration_v9_v10(sqlite3 *database, const char *name)
return 0;
}
+static int do_migration_v10_v11(sqlite3 *database, const char *name)
+{
+ netdata_log_info("Running \"%s\" database migration", name);
+
+ if (table_exists_in_database("health_log") && !column_exists_in_table("health_log", "chart_name"))
+ return init_database_batch(database, DB_CHECK_NONE, 0, &database_migrate_v10_v11[0]);
+
+ return 0;
+}
+
static int do_migration_noop(sqlite3 *database, const char *name)
{
UNUSED(database);
@@ -354,6 +368,7 @@ DATABASE_FUNC_MIGRATION_LIST migration_action[] = {
{.name = "v7 to v8", .func = do_migration_v7_v8},
{.name = "v8 to v9", .func = do_migration_v8_v9},
{.name = "v9 to v10", .func = do_migration_v9_v10},
+ {.name = "v10 to v11", .func = do_migration_v10_v11},
// the terminator of this array
{.name = NULL, .func = NULL}
};
diff --git a/database/sqlite/sqlite_functions.c b/database/sqlite/sqlite_functions.c
index 4200c1590..d976a3c6e 100644
--- a/database/sqlite/sqlite_functions.c
+++ b/database/sqlite/sqlite_functions.c
@@ -3,7 +3,7 @@
#include "sqlite_functions.h"
#include "sqlite_db_migration.h"
-#define DB_METADATA_VERSION 10
+#define DB_METADATA_VERSION 11
const char *database_config[] = {
"CREATE TABLE IF NOT EXISTS host(host_id BLOB PRIMARY KEY, hostname TEXT NOT NULL, "
@@ -34,8 +34,6 @@ const char *database_config[] = {
"repeat text, host_labels text, p_db_lookup_dimensions text, p_db_lookup_method text, p_db_lookup_options int, "
"p_db_lookup_after int, p_db_lookup_before int, p_update_every int, source text, chart_labels text);",
- "CREATE INDEX IF NOT EXISTS alert_hash_index ON alert_hash (hash_id);",
-
"CREATE TABLE IF NOT EXISTS host_info(host_id blob, system_key text NOT NULL, system_value text NOT NULL, "
"date_created INT, PRIMARY KEY(host_id, system_key));",
@@ -47,7 +45,7 @@ const char *database_config[] = {
"CREATE TABLE IF NOT EXISTS health_log (health_log_id INTEGER PRIMARY KEY, host_id blob, alarm_id int, "
"config_hash_id blob, name text, chart text, family text, recipient text, units text, exec text, "
- "chart_context text, last_transition_id blob, UNIQUE (host_id, alarm_id)) ;",
+ "chart_context text, last_transition_id blob, chart_name text, UNIQUE (host_id, alarm_id)) ;",
"CREATE INDEX IF NOT EXISTS health_log_ind_1 ON health_log (host_id);",
@@ -75,6 +73,7 @@ const char *database_cleanup[] = {
"DROP INDEX IF EXISTS ind_d1;",
"DROP INDEX IF EXISTS ind_c1;",
"DROP INDEX IF EXISTS ind_c2;",
+ "DROP INDEX IF EXISTS alert_hash_index;",
NULL
};
@@ -593,15 +592,20 @@ static inline void set_host_node_id(RRDHOST *host, uuid_t *node_id)
if (unlikely(!node_id)) {
freez(host->node_id);
- host->node_id = NULL;
+ __atomic_store_n(&host->node_id, NULL, __ATOMIC_RELAXED);
return;
}
struct aclk_sync_host_config *wc = host->aclk_sync_host_config;
- if (unlikely(!host->node_id))
- host->node_id = mallocz(sizeof(*host->node_id));
- uuid_copy(*(host->node_id), *node_id);
+ if (unlikely(!host->node_id)) {
+ uuid_t *t = mallocz(sizeof(*host->node_id));
+ uuid_copy(*t, *node_id);
+ __atomic_store_n(&host->node_id, t, __ATOMIC_RELAXED);
+ }
+ else {
+ uuid_copy(*(host->node_id), *node_id);
+ }
if (unlikely(!wc))
sql_create_aclk_table(host, &host->host_uuid, node_id);
@@ -617,6 +621,14 @@ int update_node_id(uuid_t *host_id, uuid_t *node_id)
RRDHOST *host = NULL;
int rc = 2;
+ char host_guid[GUID_LEN + 1];
+ uuid_unparse_lower(*host_id, host_guid);
+ rrd_wrlock();
+ host = rrdhost_find_by_guid(host_guid);
+ if (likely(host))
+ set_host_node_id(host, node_id);
+ rrd_unlock();
+
if (unlikely(!db_meta)) {
if (default_rrd_memory_mode == RRD_MEMORY_MODE_DBENGINE)
error_report("Database has not been initialized");
@@ -646,14 +658,6 @@ int update_node_id(uuid_t *host_id, uuid_t *node_id)
error_report("Failed to store node instance information, rc = %d", rc);
rc = sqlite3_changes(db_meta);
- char host_guid[GUID_LEN + 1];
- uuid_unparse_lower(*host_id, host_guid);
- rrd_wrlock();
- host = rrdhost_find_by_guid(host_guid);
- if (likely(host))
- set_host_node_id(host, node_id);
- rrd_unlock();
-
failed:
if (unlikely(sqlite3_finalize(res) != SQLITE_OK))
error_report("Failed to finalize the prepared statement when storing node instance information");
diff --git a/database/sqlite/sqlite_health.c b/database/sqlite/sqlite_health.c
index 3ecd783dc..9c103f098 100644
--- a/database/sqlite/sqlite_health.c
+++ b/database/sqlite/sqlite_health.c
@@ -83,9 +83,10 @@ failed:
Inserts an entry in the table
*/
#define SQL_INSERT_HEALTH_LOG "INSERT INTO health_log (host_id, alarm_id, " \
- "config_hash_id, name, chart, family, exec, recipient, units, chart_context, last_transition_id) " \
- "VALUES (?,?,?,?,?,?,?,?,?,?,?) " \
- "ON CONFLICT (host_id, alarm_id) DO UPDATE SET last_transition_id = excluded.last_transition_id RETURNING health_log_id; "
+ "config_hash_id, name, chart, family, exec, recipient, units, chart_context, last_transition_id, chart_name) " \
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?) " \
+ "ON CONFLICT (host_id, alarm_id) DO UPDATE SET last_transition_id = excluded.last_transition_id, " \
+ "chart_name = excluded.chart_name RETURNING health_log_id; "
#define SQL_INSERT_HEALTH_LOG_DETAIL "INSERT INTO health_log_detail (health_log_id, unique_id, alarm_id, alarm_event_id, " \
"updated_by_id, updates_id, when_key, duration, non_clear_duration, flags, exec_run_timestamp, delay_up_to_timestamp, " \
@@ -174,6 +175,12 @@ void sql_health_alarm_log_insert(RRDHOST *host, ALARM_ENTRY *ae) {
goto failed;
}
+ rc = sqlite3_bind_string_or_null(res, ae->chart_name, 12);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind chart_name parameter for SQL_INSERT_HEALTH_LOG");
+ goto failed;
+ }
+
rc = sqlite3_step_monitored(res);
if (likely(rc == SQLITE_ROW))
health_log_id = (size_t) sqlite3_column_int64(res, 0);
@@ -685,7 +692,10 @@ failed:
error_report("HEALTH [N/A]: Failed to finalize the prepared statement for injecting removed event.");
}
-#define SQL_SELECT_MAX_UNIQUE_ID "SELECT MAX(hld.unique_id) from health_log_detail hld, health_log hl where hl.host_id = @host_id; and hl.health_log_id = hld.health_log_id"
+#define SQL_SELECT_MAX_UNIQUE_ID \
+ "SELECT MAX(hld.unique_id) FROM health_log_detail hld, health_log hl " \
+ "WHERE hl.host_id = @host_id AND hl.health_log_id = hld.health_log_id"
+
uint32_t sql_get_max_unique_id (RRDHOST *host)
{
int rc;
@@ -766,7 +776,7 @@ void sql_check_removed_alerts_state(RRDHOST *host)
"hld.updates_id, hld.when_key, hld.duration, hld.non_clear_duration, hld.flags, hld.exec_run_timestamp, " \
"hld.delay_up_to_timestamp, hl.name, hl.chart, hl.family, hl.exec, hl.recipient, ah.source, hl.units, " \
"hld.info, hld.exec_code, hld.new_status, hld.old_status, hld.delay, hld.new_value, hld.old_value, " \
- "hld.last_repeat, ah.class, ah.component, ah.type, hl.chart_context, hld.transition_id, hld.global_id " \
+ "hld.last_repeat, ah.class, ah.component, ah.type, hl.chart_context, hld.transition_id, hld.global_id, hl.chart_name " \
"FROM health_log hl, alert_hash ah, health_log_detail hld " \
"WHERE hl.config_hash_id = ah.hash_id and hl.host_id = @host_id and hl.last_transition_id = hld.transition_id;"
void sql_health_alarm_log_load(RRDHOST *host) {
@@ -945,6 +955,11 @@ void sql_health_alarm_log_load(RRDHOST *host) {
if (sqlite3_column_type(res, 32) != SQLITE_NULL)
ae->global_id = sqlite3_column_int64(res, 32);
+ if (sqlite3_column_type(res, 33) != SQLITE_NULL)
+ ae->chart_name = string_strdupz((char *) sqlite3_column_text(res, 33));
+ else
+ ae->chart_name = NULL;
+
char value_string[100 + 1];
string_freez(ae->old_value_string);
string_freez(ae->new_value_string);
@@ -1203,7 +1218,7 @@ bind_fail:
if cloud is disabled or openssl is not available (which will prevent cloud connectivity)
skip hash calculations
*/
-#if !defined DISABLE_CLOUD && defined ENABLE_HTTPS
+#if defined ENABLE_HTTPS
#define DIGEST_ALERT_CONFIG_VAL(v) ((v) ? EVP_DigestUpdate(evpctx, (string2str(v)), string_strlen((v))) : EVP_DigestUpdate(evpctx, "", 1))
#endif
int alert_hash_and_store_config(
@@ -1211,7 +1226,7 @@ int alert_hash_and_store_config(
struct alert_config *cfg,
int store_hash)
{
-#if !defined DISABLE_CLOUD && defined ENABLE_HTTPS
+#if defined ENABLE_HTTPS
EVP_MD_CTX *evpctx;
unsigned char hash_value[EVP_MAX_MD_SIZE];
unsigned int hash_len;
@@ -1717,6 +1732,135 @@ uint32_t sql_get_alarm_id(RRDHOST *host, STRING *chart, STRING *name, uint32_t *
return alarm_id;
}
+#define SQL_UPDATE_ALARM_ID_WITH_CONFIG_HASH "update health_log set config_hash_id = @config_hash_id where host_id = @host_id and alarm_id = @alarm_id and health_log_id = @health_log_id"
+void sql_update_alarm_with_config_hash(RRDHOST *host, uint32_t alarm_id, uint64_t health_log_id, uuid_t *config_hash_id)
+{
+ int rc = 0;
+ sqlite3_stmt *res = NULL;
+
+ rc = sqlite3_prepare_v2(db_meta, SQL_UPDATE_ALARM_ID_WITH_CONFIG_HASH, -1, &res, 0);
+ if (rc != SQLITE_OK) {
+ error_report("Failed to prepare statement when trying to update an alarm id with a config hash.");
+ return;
+ }
+
+ rc = sqlite3_bind_blob(res, 1, config_hash_id, sizeof(*config_hash_id), SQLITE_STATIC);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind config_hash_id parameter for SQL_UPDATE_ALARM_ID_WITH_CONFIG_HASH.");
+ sqlite3_finalize(res);
+ return;
+ }
+
+ rc = sqlite3_bind_blob(res, 2, &host->host_uuid, sizeof(host->host_uuid), SQLITE_STATIC);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind host_id parameter for SQL_UPDATE_ALARM_ID_WITH_CONFIG_HASH.");
+ sqlite3_finalize(res);
+ return;
+ }
+
+ rc = sqlite3_bind_int64(res, 3, (sqlite3_int64) alarm_id);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind alarm_id parameter for SQL_GET_ALARM_ID.");
+ sqlite3_finalize(res);
+ return;
+ }
+
+ rc = sqlite3_bind_int64(res, 4, (sqlite3_int64) health_log_id);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind alarm_id parameter for SQL_GET_ALARM_ID.");
+ sqlite3_finalize(res);
+ return;
+ }
+
+ rc = execute_insert(res);
+ if (unlikely(rc != SQLITE_DONE)) {
+ error_report("Failed to execute SQL_UPDATE_ALARM_ID_WITH_CONFIG_HASH, rc = %d", rc);
+ rc = sqlite3_finalize(res);
+ if (unlikely(rc != SQLITE_OK))
+ error_report("Failed to reset statement to update health log detail table with config hash ids, rc = %d", rc);
+ return;
+ }
+}
+
+#define SQL_GET_ALARM_ID_CHECK_ZERO_HASH "select alarm_id, health_log_id from health_log where host_id = @host_id and chart = @chart and name = @name and (config_hash_id is null or config_hash_id = zeroblob(16))"
+uint32_t sql_get_alarm_id_check_zero_hash(RRDHOST *host, STRING *chart, STRING *name, uint32_t *next_event_id, uuid_t *config_hash_id)
+{
+ int rc = 0;
+ sqlite3_stmt *res = NULL;
+ uint32_t alarm_id = 0;
+ uint64_t health_log_id = 0;
+
+ rc = sqlite3_prepare_v2(db_meta, SQL_GET_ALARM_ID_CHECK_ZERO_HASH, -1, &res, 0);
+ if (rc != SQLITE_OK) {
+ error_report("Failed to prepare statement when trying to get an alarm id with zero hash");
+ return alarm_id;
+ }
+
+ rc = sqlite3_bind_blob(res, 1, &host->host_uuid, sizeof(host->host_uuid), SQLITE_STATIC);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind host_id parameter for SQL_GET_ALARM_ID_CHECK_ZERO_HASH.");
+ sqlite3_finalize(res);
+ return alarm_id;
+ }
+
+ rc = sqlite3_bind_string_or_null(res, chart, 2);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind char parameter for SQL_GET_ALARM_ID_CHECK_ZERO_HASH.");
+ sqlite3_finalize(res);
+ return alarm_id;
+ }
+
+ rc = sqlite3_bind_string_or_null(res, name, 3);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind name parameter for SQL_GET_ALARM_ID_CHECK_ZERO_HASH.");
+ sqlite3_finalize(res);
+ return alarm_id;
+ }
+
+ while (sqlite3_step_monitored(res) == SQLITE_ROW) {
+ alarm_id = (uint32_t) sqlite3_column_int64(res, 0);
+ health_log_id = (uint64_t) sqlite3_column_int64(res, 1);
+ }
+
+ rc = sqlite3_finalize(res);
+ if (unlikely(rc != SQLITE_OK))
+ error_report("Failed to finalize the statement while getting an alarm id.");
+
+ if (alarm_id) {
+ sql_update_alarm_with_config_hash(host, alarm_id, health_log_id, config_hash_id);
+
+ rc = sqlite3_prepare_v2(db_meta, SQL_GET_EVENT_ID, -1, &res, 0);
+ if (rc != SQLITE_OK) {
+ error_report("Failed to prepare statement when trying to get an event id");
+ return alarm_id;
+ }
+
+ rc = sqlite3_bind_int64(res, 1, (sqlite3_int64) health_log_id);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind host_id parameter for SQL_GET_EVENT_ID.");
+ sqlite3_finalize(res);
+ return alarm_id;
+ }
+
+ rc = sqlite3_bind_int64(res, 2, (sqlite3_int64) alarm_id);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind char parameter for SQL_GET_EVENT_ID.");
+ sqlite3_finalize(res);
+ return alarm_id;
+ }
+
+ while (sqlite3_step_monitored(res) == SQLITE_ROW) {
+ *next_event_id = (uint32_t) sqlite3_column_int64(res, 0);
+ }
+
+ rc = sqlite3_finalize(res);
+ if (unlikely(rc != SQLITE_OK))
+ error_report("Failed to finalize the statement while getting an alarm id.");
+ }
+
+ return alarm_id;
+}
+
#define SQL_GET_ALARM_ID_FROM_TRANSITION_ID "SELECT hld.alarm_id, hl.host_id, hl.chart_context FROM " \
"health_log_detail hld, health_log hl WHERE hld.transition_id = @transition_id " \
"and hld.health_log_id = hl.health_log_id"
@@ -1767,7 +1911,7 @@ fail:
#define SQL_POPULATE_TEMP_ALERT_TRANSITION_TABLE "INSERT INTO v_%p (host_id) VALUES (@host_id)"
#define SQL_SEARCH_ALERT_TRANSITION_SELECT "SELECT " \
- "h.host_id, h.alarm_id, h.config_hash_id, h.name, h.chart, h.family, h.recipient, h.units, h.exec, " \
+ "h.host_id, h.alarm_id, h.config_hash_id, h.name, h.chart, h.chart_name, h.family, h.recipient, h.units, h.exec, " \
"h.chart_context, d.when_key, d.duration, d.non_clear_duration, d.flags, d.delay_up_to_timestamp, " \
"d.info, d.exec_code, d.new_status, d.old_status, d.delay, d.new_value, d.old_value, d.last_repeat, " \
"d.transition_id, d.global_id, ah.class, ah.type, ah.component, d.exec_run_timestamp"
@@ -1913,31 +2057,31 @@ run_query:;
atd.config_hash_id = (uuid_t *)sqlite3_column_blob(res, 2);
atd.alert_name = (const char *) sqlite3_column_text(res, 3);
atd.chart = (const char *) sqlite3_column_text(res, 4);
- atd.chart_name = (const char *) sqlite3_column_text(res, 4); // FIXME don't copy the id, find the name
- atd.family = (const char *) sqlite3_column_text(res, 5);
- atd.recipient = (const char *) sqlite3_column_text(res, 6);
- atd.units = (const char *) sqlite3_column_text(res, 7);
- atd.exec = (const char *) sqlite3_column_text(res, 8);
- atd.chart_context = (const char *) sqlite3_column_text(res, 9);
- atd.when_key = sqlite3_column_int64(res, 10);
- atd.duration = sqlite3_column_int64(res, 11);
- atd.non_clear_duration = sqlite3_column_int64(res, 12);
- atd.flags = sqlite3_column_int64(res, 13);
- atd.delay_up_to_timestamp = sqlite3_column_int64(res, 14);
- atd.info = (const char *) sqlite3_column_text(res, 15);
- atd.exec_code = sqlite3_column_int(res, 16);
- atd.new_status = sqlite3_column_int(res, 17);
- atd.old_status = sqlite3_column_int(res, 18);
- atd.delay = (int) sqlite3_column_int(res, 19);
- atd.new_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 20);
- atd.old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 21);
- atd.last_repeat = sqlite3_column_int64(res, 22);
- atd.transition_id = (uuid_t *) sqlite3_column_blob(res, 23);
- atd.global_id = sqlite3_column_int64(res, 24);
- atd.classification = (const char *) sqlite3_column_text(res, 25);
- atd.type = (const char *) sqlite3_column_text(res, 26);
- atd.component = (const char *) sqlite3_column_text(res, 27);
- atd.exec_run_timestamp = sqlite3_column_int64(res, 28);
+ atd.chart_name = (const char *) sqlite3_column_text(res, 5);
+ atd.family = (const char *) sqlite3_column_text(res, 6);
+ atd.recipient = (const char *) sqlite3_column_text(res, 7);
+ atd.units = (const char *) sqlite3_column_text(res, 8);
+ atd.exec = (const char *) sqlite3_column_text(res, 9);
+ atd.chart_context = (const char *) sqlite3_column_text(res, 10);
+ atd.when_key = sqlite3_column_int64(res, 11);
+ atd.duration = sqlite3_column_int64(res, 12);
+ atd.non_clear_duration = sqlite3_column_int64(res, 13);
+ atd.flags = sqlite3_column_int64(res, 14);
+ atd.delay_up_to_timestamp = sqlite3_column_int64(res, 15);
+ atd.info = (const char *) sqlite3_column_text(res, 16);
+ atd.exec_code = sqlite3_column_int(res, 17);
+ atd.new_status = sqlite3_column_int(res, 18);
+ atd.old_status = sqlite3_column_int(res, 19);
+ atd.delay = (int) sqlite3_column_int(res, 20);
+ atd.new_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 21);
+ atd.old_value = (NETDATA_DOUBLE) sqlite3_column_double(res, 22);
+ atd.last_repeat = sqlite3_column_int64(res, 23);
+ atd.transition_id = (uuid_t *) sqlite3_column_blob(res, 24);
+ atd.global_id = sqlite3_column_int64(res, 25);
+ atd.classification = (const char *) sqlite3_column_text(res, 26);
+ atd.type = (const char *) sqlite3_column_text(res, 27);
+ atd.component = (const char *) sqlite3_column_text(res, 28);
+ atd.exec_run_timestamp = sqlite3_column_int64(res, 29);
cb(&atd, data);
}
@@ -2087,3 +2231,68 @@ fail_only_drop:
return added;
}
+#define SQL_FETCH_CHART_NAME "SELECT chart_name FROM health_log where host_id = @host_id LIMIT 1;"
+bool is_chart_name_populated(uuid_t *host_uuid)
+{
+ sqlite3_stmt *res = NULL;
+ int rc;
+
+ bool status = true;
+
+ rc = sqlite3_prepare_v2(db_meta, SQL_FETCH_CHART_NAME, -1, &res, 0);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to prepare statement to check health_log chart_name");
+ return true;
+ }
+
+ rc = sqlite3_bind_blob(res, 1, host_uuid, sizeof(*host_uuid), SQLITE_STATIC);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind host_id for health_log chart_name check");
+ goto fail;
+ }
+
+ rc = sqlite3_step_monitored(res);
+ if (likely(rc == SQLITE_ROW))
+ status = sqlite3_column_type(res, 0) != SQLITE_NULL;
+fail:
+
+ rc = sqlite3_finalize(res);
+ if (unlikely(rc != SQLITE_OK))
+ error_report("Failed to finalize the prepared statement for health_log chart_name check");
+
+ return status;
+}
+
+#define SQL_POPULATE_CHART_NAME " UPDATE health_log SET chart_name = upd.chart_name FROM " \
+ "(SELECT c.type || '.' || IFNULL(c.name, c.id) AS chart_name, hl.host_id, hl.health_log_id FROM " \
+ "chart c, health_log hl WHERE (c.type || '.' || c.id) = hl.chart AND c.host_id = hl.host_id " \
+ "AND hl.host_id = @host_id) AS upd WHERE health_log.host_id = upd.host_id " \
+ "AND health_log.health_log_id = upd.health_log_id"
+
+void chart_name_populate(uuid_t *host_uuid)
+{
+ sqlite3_stmt *res = NULL;
+ int rc;
+
+ rc = sqlite3_prepare_v2(db_meta, SQL_POPULATE_CHART_NAME, -1, &res, 0);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to prepare statement to update health_log chart_name");
+ return;
+ }
+
+ rc = sqlite3_bind_blob(res, 1, host_uuid, sizeof(*host_uuid), SQLITE_STATIC);
+ if (unlikely(rc != SQLITE_OK)) {
+ error_report("Failed to bind host_id for health_log chart_name update");
+ goto fail;
+ }
+
+ rc = execute_insert(res);
+ if (unlikely(rc != SQLITE_DONE))
+ error_report("Failed to update chart name in health_log, rc = %d", rc);
+
+fail:
+
+ rc = sqlite3_finalize(res);
+ if (unlikely(rc != SQLITE_OK))
+ error_report("Failed to finalize the prepared statement for health_log chart_name update");
+}
diff --git a/database/sqlite/sqlite_health.h b/database/sqlite/sqlite_health.h
index 55e523d2f..3aebb94b7 100644
--- a/database/sqlite/sqlite_health.h
+++ b/database/sqlite/sqlite_health.h
@@ -19,6 +19,7 @@ int sql_health_get_last_executed_event(RRDHOST *host, ALARM_ENTRY *ae, RRDCALC_S
void sql_health_alarm_log2json(RRDHOST *host, BUFFER *wb, uint32_t after, char *chart);
int health_migrate_old_health_log_table(char *table);
uint32_t sql_get_alarm_id(RRDHOST *host, STRING *chart, STRING *name, uint32_t *next_event_id, uuid_t *config_hash_id);
+uint32_t sql_get_alarm_id_check_zero_hash(RRDHOST *host, STRING *chart, STRING *name, uint32_t *next_event_id, uuid_t *config_hash_id);
void sql_alert_transitions(
DICTIONARY *nodes,
time_t after,
@@ -37,4 +38,6 @@ int sql_get_alert_configuration(
bool debug __maybe_unused);
bool sql_find_alert_transition(const char *transition, void (*cb)(const char *machine_guid, const char *context, time_t alert_id, void *data), void *data);
+bool is_chart_name_populated(uuid_t *host_uuid);
+void chart_name_populate(uuid_t *host_uuid);
#endif //NETDATA_SQLITE_HEALTH_H
diff --git a/diagrams/docs/Makefile b/diagrams/docs/Makefile
new file mode 100644
index 000000000..0ec111697
--- /dev/null
+++ b/diagrams/docs/Makefile
@@ -0,0 +1,18 @@
+DRAWIO ?= /opt/drawio/drawio
+DRAWIO_FLAGS = --export --format svg --transparent --embed-svg-images
+
+SOURCES := $(wildcard *.drawio)
+TARGETS := $(patsubst %.drawio,%.svg,$(SOURCES))
+
+.PHONY:
+all: svg
+
+.PHONY:
+svg: $(TARGETS)
+
+.PHONY:
+clean:
+ rm $(TARGETS)
+
+$(TARGETS): %.svg: %.drawio
+ $(DRAWIO) $(DRAWIO_FLAGS) --output $@ $<
diff --git a/diagrams/docs/deployment-parent.drawio b/diagrams/docs/deployment-parent.drawio
new file mode 100644
index 000000000..92e72fa95
--- /dev/null
+++ b/diagrams/docs/deployment-parent.drawio
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/diagrams/docs/deployment-parents.drawio b/diagrams/docs/deployment-parents.drawio
new file mode 100644
index 000000000..a3ee5e95f
--- /dev/null
+++ b/diagrams/docs/deployment-parents.drawio
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/diagrams/docs/deployment-standalone.drawio b/diagrams/docs/deployment-standalone.drawio
new file mode 100644
index 000000000..492b114b5
--- /dev/null
+++ b/diagrams/docs/deployment-standalone.drawio
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/anonymous-statistics.md b/docs/anonymous-statistics.md
index d8cc99689..f84989e16 100644
--- a/docs/anonymous-statistics.md
+++ b/docs/anonymous-statistics.md
@@ -23,7 +23,7 @@ We use the statistics gathered from this information for two purposes:
Netdata collects usage information via two different channels:
-- **Agent dashboard**: We use the [PostHog JavaScript integration](https://posthog.com/docs/integrations/js-integration) (with sensitive event attributes overwritten to be anonymized) to send product usage events when you access an [Agent's dashboard](https://github.com/netdata/netdata/blob/master/web/gui/README.md).
+- **Agent dashboard**: We use the [PostHog JavaScript integration](https://posthog.com/docs/integrations/js-integration) (with sensitive event attributes overwritten to be anonymized) to send product usage events when you access an [Agent's dashboard](https://github.com/netdata/netdata/blob/master/docs/category-overview-pages/accessing-netdata-dashboards.md).
- **Agent backend**: The `netdata` daemon executes the [`anonymous-statistics.sh`](https://github.com/netdata/netdata/blob/6469cf92724644f5facf343e4bdd76ac0551a418/daemon/anonymous-statistics.sh.in) script when Netdata starts, stops cleanly, or fails.
You can opt-out from sending anonymous statistics to Netdata through three different [opt-out mechanisms](#opt-out).
diff --git a/docs/category-overview-pages/deployment-strategies.md b/docs/category-overview-pages/deployment-strategies.md
index a1d393f26..f8a68b46f 100644
--- a/docs/category-overview-pages/deployment-strategies.md
+++ b/docs/category-overview-pages/deployment-strategies.md
@@ -21,7 +21,7 @@ There are 3 components to structure your Netdata ecosystem:
3. **Netdata Cloud**
- Our SaaS, combining all your infrastructure, all your Netdata Agents and Parents, into one uniform, distributed, infinitely
+ Our SaaS, combining all your infrastructure, all your Netdata Agents and Parents, into one uniform, distributed,
scalable, monitoring database, offering advanced data slicing and dicing capabilities, custom dashboards, advanced troubleshooting
tools, user management, centralized management of alerts, and more.
@@ -30,9 +30,211 @@ The Netdata Agent is a highly modular software piece, providing data collection
database, a query engine, health monitoring and alerts, machine learning and anomaly detection, metrics exporting to third party systems.
-To help our users have a complete experience of Netdata when they install it for the first time, a Netdata Agent with default configuration
+## Deployment Options Overview
+
+This section provides a quick overview of a few common deployment options. The next sections go into configuration examples and further reading.
+
+### Stand-alone Deployment
+
+To help our users have a complete experience of Netdata when they install it for the first time, a Netdata Agent with default configuration
is a complete monitoring solution out of the box, having all these features enabled and available.
+The Agent will act as a _stand-alone_ Agent by default, and this is great to start out with for small setups and home labs. By [connecting each Agent to Cloud](https://github.com/netdata/netdata/blob/master/claim/README.md), you can see an overview of all your nodes, with aggregated charts and centralized alerting, without setting up a Parent.
+
+![image](https://github.com/netdata/netdata/assets/116741/6a638175-aec4-4d46-85a6-520c283ab6a8)
+
+### Parent – Child Deployment
+
+An Agent connected to a Parent is called a _Child_. It will _stream_ metrics to its Parent. The Parent can then take care of storing metrics on behalf of that node (with longer retention), handle metrics queries for showing dashboards, and provide alerting.
+
+When using Cloud, it is recommended that just the Parent is connected to Cloud. Child Agents can then be configured to have short retention, in RAM instead of on Disk, and have alerting and other features disabled. Because they don't need to connect to Cloud themselves, those children can then be further secured by not allowing outbound traffic.
+
+![image](https://github.com/netdata/netdata/assets/116741/cb65698d-a6b7-43ee-a2d1-c30d0a46f084)
+
+This setup allows for leaner Child nodes and is good for setups with more than a handful of nodes. Metrics data remains accessible if the Child node is temporarily unavailable or decommissioned, although there is no failover in case the Parent becomes unavailable.
+
+
+### Active–Active Parent Deployment
+
+For high availability, Parents can be configured to stream data for their children between them, and keep the data sets in sync. Child Agents are configured with the addresses of both Parent Agents, but will only stream to one of them at a time. When that Parent becomes unavailable, it reconnects to another. When the first Parent becomes available again, that Parent will catch up by receiving the backlog from the second.
+
+With both Parent Agents connected to Cloud, Cloud will route queries to either Parent transparently, depending on their availability. Alerts trigger on either Parent will stream to Cloud, and Cloud will deduplicate and debounce state changes to prevent spurious notifications.
+
+![image](https://github.com/netdata/netdata/assets/116741/6ae2b10c-7f7d-4503-aac4-0a9381c6f80b)
+
+
+## Configuration Details
+
+### Stand-alone Deployment
+
+The stand-alone setup is configured out of the box with reasonable defaults, but please consult our [configuration documentation](https://github.com/netdata/netdata/blob/master/docs/cloud/cheatsheet.md) for details, including the overview of [common configuration changes](https://github.com/netdata/netdata/blob/master/docs/configure/common-changes.md).
+
+### Parent – Child Deployment
+
+For setups involving Child and Parent Agents, the Agents need to be configured for [_streaming_](https://github.com/netdata/netdata/blob/master/streaming/README.md), through the configuration file `stream.conf`. This will instruct the Child to stream data to the Parent and the Parent to accept streaming connections for one or more Child Agents. To secure this connection, both need set up a shared API key (to replace the string `API_KEY` in the examples below). Additionally, the Child is configured with one or more addresses of Parent Agents (`PARENT_IP_ADDRESS`).
+
+An API key is a key created with `uuidgen` and is used for authentication and/or customization in the Parent side. I.e. a Child will stream using the API key, and a Parent is configured to accept connections from Child, but can also apply different options for children by using multiple different API keys. The easiest setup uses just one API key for all Child Agents.
+
+#### Child config
+
+As mentioned above, the recommendation is to not claim the Child to Cloud directly during your setup, avoiding establishing an [ACLK](https://github.com/netdata/netdata/blob/master/aclk/README.md) connection.
+
+To reduce the footprint of the Netdata Agent on your production system, some capabilities can be switched OFF on the Child and kept ON on the Parent. In this example, Machine Learning and Alerting are disabled in the Child, so that the Parent can take the load. We also use RAM instead of disk to store metrics with limited retention, covering temporary network issues.
+
+##### netdata.conf
+
+On the child node, edit `netdata.conf` by using the edit-config script: `/etc/netdata/edit-config netdata.conf` set the following parameters:
+
+```yaml
+[db]
+ # https://learn.netdata.cloud/docs/agent/database
+ # none = no retention, ram = some retention in ram
+ mode = ram
+ # The retention in seconds.
+ # This provides some tolerance to the time the child has to find a parent in
+ # order to transfer the data. For IoT this can be lowered to 120.
+ retention = 1200
+ # The granularity of metrics, in seconds.
+ # You may increase this to lower CPU resources.
+ update every = 1
+[ml]
+ # Disable Machine Learning
+ enabled = no
+[health]
+ # Disable Health Checks (Alerting)
+ enabled = no
+[web]
+ # Disable remote access to the local dashboard
+ bind to = lo
+[plugins]
+ # Uncomment the following line to disable all external plugins on extreme
+ # IoT cases by default.
+ # enable running new plugins = no
+```
+
+##### stream.conf
+
+To edit `stream.conf`, again use the edit-config script: `/etc/netdata/edit-config stream.conf`.
+
+Set the following parameters:
+
+```yaml
+[stream]
+ # Stream metrics to another Netdata
+ enabled = yes
+ # The IP and PORT of the parent
+ destination = PARENT_IP_ADDRESS:19999
+ # The shared API key, generated by uuidgen
+ api key = API_KEY
+```
+
+#### Parent config
+
+For the Parent, besides setting up streaming, the example will also provide an example configuration of multiple [tiers](https://github.com/netdata/netdata/blob/master/database/engine/README.md#tiering) of metrics [storage](https://github.com/netdata/netdata/blob/master/docs/store/change-metrics-storage.md), for 10 children, with about 2k metrics each.
+
+- 1s granularity at tier 0 for 1 week
+- 1m granularity at tier 1 for 1 month
+- 1h granularity at tier 2 for 1 year
+
+Requiring:
+
+- 25GB of disk
+- 3.5GB of RAM (2.5GB under pressure)
+
+##### netdata.conf
+
+On the Parent, edit `netdata.conf` with `/etc/netdata/edit-config netdata.conf` and set the following parameters:
+
+```yaml
+[db]
+ mode = dbengine
+ storage tiers = 3
+ # To allow memory pressure to offload index from ram
+ dbengine page descriptors in file mapped memory = yes
+ # storage tier 0
+ update every = 1
+ dbengine multihost disk space MB = 12000
+ dbengine page cache size MB = 1400
+ # storage tier 1
+ dbengine tier 1 page cache size MB = 512
+ dbengine tier 1 multihost disk space MB = 4096
+ dbengine tier 1 update every iterations = 60
+ dbengine tier 1 backfill = new
+ # storage tier 2
+ dbengine tier 2 page cache size MB = 128
+ dbengine tier 2 multihost disk space MB = 2048
+ dbengine tier 2 update every iterations = 60
+ dbengine tier 2 backfill = new
+[ml]
+ # Enabled by default
+ # enabled = yes
+[health]
+ # Enabled by default
+ # enabled = yes
+[web]
+ # Enabled by default
+ # bind to = *
+```
+
+##### stream.conf
+
+On the Parent node, edit `stream.conf` with `/etc/netdata/edit-config stream.conf`, and then set the following parameters:
+
+```yaml
+[API_KEY]
+ # Accept metrics streaming from other Agents with the specified API key
+ enabled = yes
+```
+
+### Active–Active Parent Deployment
+
+In order to setup active–active streaming between Parent 1 and Parent 2, Parent 1 needs to be instructed to stream data to Parent 2 and Parent 2 to stream data to Parent 1. The Child Agents need to be configured with the addresses of both Parent Agents. The Agent will only connect to one Parent at a time, falling back to the next if the previous failed. These examples use the same API key between Parent Agents as for connections from Child Agents.
+
+On both Netdata Parent and all Child Agents, edit `stream.conf` with `/etc/netdata/edit-config stream.conf`:
+
+##### stream.conf on Parent 1
+
+```yaml
+[stream]
+ # Stream metrics to another Netdata
+ enabled = yes
+ # The IP and PORT of Parent 2
+ destination = PARENT_2_IP_ADDRESS:19999
+ # This is the API key for the outgoing connection to Parent 2
+ api key = API_KEY
+[API_KEY]
+ # Accept metrics streams from Parent 2 and Child Agents
+ enabled = yes
+```
+
+##### stream.conf on Parent 2
+
+```yaml
+[stream]
+ # Stream metrics to another Netdata
+ enabled = yes
+ # The IP and PORT of Parent 1
+ destination = PARENT_1_IP_ADDRESS:19999
+ api key = API_KEY
+[API_KEY]
+ # Accept metrics streams from Parent 1 and Child Agents
+ enabled = yes
+```
+
+##### stream.conf on Child Agents
+
+```yaml
+[stream]
+ # Stream metrics to another Netdata
+ enabled = yes
+ # The IP and PORT of the parent
+ destination = PARENT_1_IP_ADDRESS:19999 PARENT_2_IP_ADDRESS:19999
+ # The shared API key, generated by uuidgen
+ api key = API_KEY
+```
+
+## Further Reading
+
We strongly recommend the following configuration changes for production deployments:
1. Understand Netdata's [security and privacy design](https://github.com/netdata/netdata/blob/master/docs/netdata-security.md) and
@@ -47,7 +249,7 @@ We strongly recommend the following configuration changes for production deploym
- Increase data retention.
- Make your data highly available.
-3. [Optimize the Netdata Agents system utilization and performance](https://github.com/netdata/netdata/edit/master/docs/guides/configure/performance.md)
+3. [Optimize the Netdata Agents system utilization and performance](https://github.com/netdata/netdata/blob/master/docs/guides/configure/performance.md)
To save valuable system resources, especially when running on weak IoT devices.
diff --git a/docs/cloud/alerts-notifications/add-webhook-notification-configuration.md b/docs/cloud/alerts-notifications/add-webhook-notification-configuration.md
index 21d1b6ed8..012b0478f 100644
--- a/docs/cloud/alerts-notifications/add-webhook-notification-configuration.md
+++ b/docs/cloud/alerts-notifications/add-webhook-notification-configuration.md
@@ -140,7 +140,7 @@ server {
ssl_client_certificate /path/to/Netdata_CA.pem;
location / {
- if ($ssl_client_s_dn !~ "CN=api.netdata.cloud") {
+ if ($ssl_client_s_dn !~ "CN=app.netdata.cloud") {
return 403;
}
# ... existing location configuration ...
@@ -158,7 +158,7 @@ Listen 443
SSLCACertificateFile "/path/to/Netdata_CA.pem"
- Require expr "%{SSL_CLIENT_S_DN_CN} == 'api.netdata.cloud'"
+ Require expr "%{SSL_CLIENT_S_DN_CN} == 'app.netdata.cloud'"
# ... existing directory configuration ...
```
diff --git a/docs/cloud/netdata-functions.md b/docs/cloud/netdata-functions.md
index 8e9415eb3..949c8b4cc 100644
--- a/docs/cloud/netdata-functions.md
+++ b/docs/cloud/netdata-functions.md
@@ -36,8 +36,10 @@ functions - [plugins.d](https://github.com/netdata/netdata/blob/master/collector
| ebpf_thread | Controller for eBPF threads. | [ebpf.plugin](https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/README.md) |
If you have ideas or requests for other functions:
-* open a [Feature request](https://github.com/netdata/netdata-cloud/issues/new?assignees=&labels=feature+request%2Cneeds+triage&template=FEAT_REQUEST.yml&title=%5BFeat%5D%3A+) on Netdata Cloud repo
-* engage with our community on the [Netdata Discord server](https://discord.com/invite/mPZ6WZKKG2).
+* Participate in the relevant [GitHub discussion](https://github.com/netdata/netdata/discussions/14412)
+* Open a [feature request](https://github.com/netdata/netdata-cloud/issues/new?assignees=&labels=feature+request%2Cneeds+triage&template=FEAT_REQUEST.yml&title=%5BFeat%5D%3A+) on Netdata Cloud repo
+* Join the Netdata community on [Discord](https://discord.com/invite/mPZ6WZKKG2) and let us know.
+
#### How do functions work with streaming?
Via streaming, the definitions of functions are transmitted to a parent node so it knows all the functions available on
diff --git a/docs/configure/common-changes.md b/docs/configure/common-changes.md
index f171e49e2..61e5d4c8d 100644
--- a/docs/configure/common-changes.md
+++ b/docs/configure/common-changes.md
@@ -20,7 +20,7 @@ directory.
## Change dashboards and visualizations
-The Netdata Agent's [local dashboard](https://github.com/netdata/netdata/blob/master/web/gui/README.md), accessible
+The Netdata Agent's [local dashboard](https://github.com/netdata/netdata/blob/master/docs/category-overview-pages/accessing-netdata-dashboards.md), accessible
at `http://NODE:19999` is highly configurable. If
you use Netdata Cloud
for [infrastructure monitoring](https://github.com/netdata/netdata/blob/master/docs/quickstart/infrastructure.md), you
diff --git a/docs/guides/troubleshoot/troubleshooting-agent-with-cloud-connection.md b/docs/guides/troubleshoot/troubleshooting-agent-with-cloud-connection.md
index ad747cb76..9c69ee915 100644
--- a/docs/guides/troubleshoot/troubleshooting-agent-with-cloud-connection.md
+++ b/docs/guides/troubleshoot/troubleshooting-agent-with-cloud-connection.md
@@ -19,17 +19,17 @@ If the claiming process fails, the node will not appear at all in Netdata Cloud.
First ensure that you:
- Use the newest possible stable or nightly version of the agent (at least v1.32).
-- Your node can successfully issue an HTTPS request to https://api.netdata.cloud
+- Your node can successfully issue an HTTPS request to https://app.netdata.cloud
Other possible causes differ between kickstart installations and Docker installations.
### Verify your node can access Netdata Cloud
-If you run either `curl` or `wget` to do an HTTPS request to https://api.netdata.cloud, you should get
+If you run either `curl` or `wget` to do an HTTPS request to https://app.netdata.cloud, you should get
back a 404 response. If you do not, check your network connectivity, domain resolution,
and firewall settings for outbound connections.
-If your firewall is configured to completely prevent outbound connections, you need to whitelist `api.netdata.cloud` and `mqtt.netdata.cloud`. If you can't whitelist domains in your firewall, you can whitelist the IPs that the hostnames resolve to, but keep in mind that they can change without any notice.
+If your firewall is configured to completely prevent outbound connections, you need to whitelist `app.netdata.cloud` and `mqtt.netdata.cloud`. If you can't whitelist domains in your firewall, you can whitelist the IPs that the hostnames resolve to, but keep in mind that they can change without any notice.
If you use an outbound proxy, you need to [take some extra steps]( https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy).
@@ -100,7 +100,7 @@ process, but not have enough time to establish the ACLK connection.
### Verify that your firewall allows websockets
-The agent initiates an SSL connection to `api.netdata.cloud` and then upgrades that connection to use secure
+The agent initiates an SSL connection to `app.netdata.cloud` and then upgrades that connection to use secure
websockets. Some firewalls completely prevent the use of websockets, even for outbound connections.
## Previously connected agent that can no longer connect
@@ -110,7 +110,7 @@ that it is currently not connected.
### Verify that network connectivity is still possible
-Verify that you can still issue HTTPS requests to api.netdata.cloud and that no firewall or proxy changes were made.
+Verify that you can still issue HTTPS requests to app.netdata.cloud and that no firewall or proxy changes were made.
### Verify that the claiming info is persisted
@@ -124,7 +124,7 @@ work this way, as we have unique node identification information under `/var/lib
### Verify that your IP is not blocked by Netdata Cloud
-Most of the nodes change IPs dynamically. It is possible that your current IP has been restricted from accessing `api.netdata.cloud` due to security concerns, usually because it was spamming Netdata Coud with too many
+Most of the nodes change IPs dynamically. It is possible that your current IP has been restricted from accessing `app.netdata.cloud` due to security concerns, usually because it was spamming Netdata Coud with too many
failed requests (old versions of the agent).
To verify this:
@@ -135,7 +135,7 @@ To verify this:
sudo netdatacli aclk-state | grep "Banned By Cloud"
```
- The output will contain a line indicating if the IP is banned from `api.netdata.cloud`:
+ The output will contain a line indicating if the IP is banned from `app.netdata.cloud`:
```bash
Banned By Cloud: yes
diff --git a/exporting/aws_kinesis/metadata.yaml b/exporting/aws_kinesis/metadata.yaml
new file mode 100644
index 000000000..96e4044ec
--- /dev/null
+++ b/exporting/aws_kinesis/metadata.yaml
@@ -0,0 +1,173 @@
+# yamllint disable rule:line-length
+---
+id: 'export-aws-kinesis'
+meta:
+ name: 'AWS Kinesis'
+ link: 'https://aws.amazon.com/kinesis/'
+ categories:
+ - export
+ icon_filename: 'aws-kinesis.svg'
+keywords:
+ - exporter
+ - AWS
+ - Kinesis
+overview:
+ exporter_description: |
+ Export metrics to AWS Kinesis Data Streams
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - First [install](https://docs.aws.amazon.com/en_us/sdk-for-cpp/v1/developer-guide/setup.html) AWS SDK for C++
+ - Here are the instructions when building from source, to ensure 3rd party dependencies are installed:
+ ```bash
+ git clone --recursive https://github.com/aws/aws-sdk-cpp.git
+ cd aws-sdk-cpp/
+ git submodule update --init --recursive
+ mkdir BUILT
+ cd BUILT
+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_ONLY=kinesis ..
+ make
+ make install
+ ```
+ - `libcrypto`, `libssl`, and `libcurl` are also required to compile Netdata with Kinesis support enabled.
+ - Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: |
+ Netdata automatically computes a partition key for every record with the purpose to distribute records across available shards evenly.
+ The following options can be defined for this exporter.
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'no'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242
+ ```
+ Example IPv6 and IPv4 together:
+ ```yaml
+ destination = [ffff:...:0001]:2003 10.11.12.1:2003
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'Netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '2 * update_every * 1000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Example configuration'
+ folding:
+ enabled: false
+ description: 'Basic configuration'
+ config: |
+ [kinesis:my_instance]
+ enabled = yes
+ destination = us-east-1
+ - name: 'Configuration with AWS credentials'
+ folding:
+ enabled: false
+ description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.'
+ config: |
+ [kinesis:my_instance]
+ enabled = yes
+ destination = us-east-1
+ # AWS credentials
+ aws_access_key_id = your_access_key_id
+ aws_secret_access_key = your_secret_access_key
+ # destination stream
+ stream name = your_stream_name
diff --git a/exporting/graphite/metadata.yaml b/exporting/graphite/metadata.yaml
new file mode 100644
index 000000000..ad8c7539b
--- /dev/null
+++ b/exporting/graphite/metadata.yaml
@@ -0,0 +1,212 @@
+# yamllint disable rule:line-length
+---
+- &graphexport
+ id: 'export-graphite'
+ meta: &meta
+ name: 'Graphite'
+ link: 'https://graphite.readthedocs.io/en/latest/'
+ categories:
+ - export
+ icon_filename: 'graphite.png'
+ keywords:
+ - exporter
+ - graphite
+ - remote write
+ - time series
+ overview:
+ exporter_description: |
+ Use the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,
+ further analysis, or correlation with data from other sources.
+ exporter_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - You have already installed Netdata and Graphite.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: 'The following options can be defined for this exporter.'
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'no'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003
+ ```
+ Example IPv6 and IPv4 together:
+ ```yaml
+ destination = [ffff:...:0001]:2003 10.11.12.1:2003
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '20000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Example configuration'
+ folding:
+ enabled: false
+ description: 'Basic configuration'
+ config: |
+ [graphite:netdata]
+ enabled = yes
+ destination = localhost:2003
+ - name: 'Configuration with HTTPS and HTTP authentication'
+ folding:
+ enabled: false
+ description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.'
+ config: |
+ [graphite:netdata]
+ enabled = yes
+ destination = localhost:2003
+ username = my_username
+ password = my_password
+ - name: 'Detailed Configuration for a remote, secure host'
+ folding:
+ enabled: false
+ description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.'
+ config: |
+ [graphite:https:netdata]
+ enabled = yes
+ username = my_username
+ password = my_password
+ destination = 10.10.1.114:2003
+ # data source = average
+ # prefix = netdata
+ # hostname = my_hostname
+ # update every = 10
+ # buffer on failures = 10
+ # timeout ms = 20000
+ # send names instead of ids = yes
+ # send charts matching = *
+ # send hosts matching = localhost *
+- <<: *graphexport
+ id: 'export-blueflood'
+ meta:
+ <<: *meta
+ name: Blueflood
+ link: http://blueflood.io/
+ icon_filename: 'blueflood.png'
+ keywords:
+ - export
+ - Blueflood
+ - graphite
+- <<: *graphexport
+ id: 'export-influxdb'
+ meta:
+ <<: *meta
+ name: InfluxDB
+ link: https://www.influxdata.com/
+ icon_filename: 'influxdb.svg'
+ keywords:
+ - InfluxDB
+ - Influx
+ - export
+ - graphite
+- <<: *graphexport
+ id: 'export-kairosdb'
+ meta:
+ <<: *meta
+ name: KairosDB
+ link: https://kairosdb.github.io/
+ icon_filename: 'kairos.png'
+ keywords:
+ - KairosDB
+ - kairos
+ - export
+ - graphite
diff --git a/exporting/json/metadata.yaml b/exporting/json/metadata.yaml
new file mode 100644
index 000000000..d9f93e4a1
--- /dev/null
+++ b/exporting/json/metadata.yaml
@@ -0,0 +1,151 @@
+# yamllint disable rule:line-length
+---
+id: 'export-json'
+meta:
+ name: 'JSON'
+ link: 'https://learn.netdata.cloud/docs/exporting/json-document-databases'
+ categories:
+ - export
+ icon_filename: 'json.svg'
+keywords:
+ - exporter
+ - json
+overview:
+ exporter_description: |
+ Use the JSON connector for the exporting engine to archive your agent's metrics to JSON document databases for long-term storage,
+ further analysis, or correlation with data from other sources
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: ''
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: |
+ The following options can be defined for this exporter.
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'pubsub.googleapis.com'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = localhost:5448
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'Netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '2 * update_every * 1000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ [json:my_json_instance]
+ enabled = yes
+ destination = localhost:5448
+ - name: 'Configuration with HTTPS and HTTP authentication'
+ folding:
+ enabled: false
+ description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `json:https:my_json_instance`.'
+ config: |
+ [json:my_json_instance]
+ enabled = yes
+ destination = localhost:5448
+ username = my_username
+ password = my_password
diff --git a/exporting/mongodb/metadata.yaml b/exporting/mongodb/metadata.yaml
new file mode 100644
index 000000000..30e1e89d8
--- /dev/null
+++ b/exporting/mongodb/metadata.yaml
@@ -0,0 +1,151 @@
+# yamllint disable rule:line-length
+---
+id: 'export-mongodb'
+meta:
+ name: 'MongoDB'
+ link: 'https://www.mongodb.com/'
+ categories:
+ - export
+ icon_filename: 'mongodb.svg'
+keywords:
+ - exporter
+ - MongoDB
+overview:
+ exporter_description: |
+ Use the MongoDB connector for the exporting engine to archive your agent's metrics to a MongoDB database
+ for long-term storage, further analysis, or correlation with data from other sources.
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - To use MongoDB as an external storage for long-term archiving, you should first [install](http://mongoc.org/libmongoc/current/installing.html) libmongoc 1.7.0 or higher.
+ - Next, re-install Netdata from the source, which detects that the required library is now available.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: |
+ The following options can be defined for this exporter.
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'localhost'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = 10.11.14.2:27017 10.11.14.3:4242 10.11.14.4:27017
+ ```
+ Example IPv6 and IPv4 together:
+ ```yaml
+ destination = [ffff:...:0001]:2003 10.11.12.1:2003
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'Netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '2 * update_every * 1000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic configuration'
+ folding:
+ enabled: false
+ description: |
+ The default socket timeout depends on the exporting connector update interval.
+ The timeout is 500 ms shorter than the interval (but not less than 1000 ms). You can alter the timeout using the sockettimeoutms MongoDB URI option.
+ config: |
+ [mongodb:my_instance]
+ enabled = yes
+ destination = mongodb://
+ database = your_database_name
+ collection = your_collection_name
diff --git a/exporting/opentsdb/metadata.yaml b/exporting/opentsdb/metadata.yaml
new file mode 100644
index 000000000..505c8c599
--- /dev/null
+++ b/exporting/opentsdb/metadata.yaml
@@ -0,0 +1,176 @@
+# yamllint disable rule:line-length
+---
+id: 'export-opentsdb'
+meta:
+ name: 'OpenTSDB'
+ link: 'https://github.com/OpenTSDB/opentsdb'
+ categories:
+ - export
+ icon_filename: 'opentsdb.png'
+keywords:
+ - exporter
+ - OpenTSDB
+ - scalable time series
+overview:
+ exporter_description: |
+ Use the OpenTSDB connector for the exporting engine to archive your Netdata metrics to OpenTSDB databases for long-term storage,
+ further analysis, or correlation with data from other sources.
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - OpenTSDB and Netdata, installed, configured and operational.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: 'The following options can be defined for this exporter.'
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'no'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used (opentsdb = 4242).
+
+ Example IPv4:
+ ```yaml
+ destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242
+ ```
+ Example IPv6 and IPv4 together:
+ ```yaml
+ destination = [ffff:...:0001]:2003 10.11.12.1:2003
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'Netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '2 * update_every * 1000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to OpenTSDB. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Minimal configuration'
+ folding:
+ enabled: false
+ description: |
+ Add `:http` or `:https` modifiers to the connector type if you need to use other than a plaintext protocol.
+ For example: `opentsdb:http:my_opentsdb_instance`, `opentsdb:https:my_opentsdb_instance`.
+ config: |
+ [opentsdb:my_opentsdb_instance]
+ enabled = yes
+ destination = localhost:4242
+ - name: 'HTTP authentication'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ [opentsdb:my_opentsdb_instance]
+ enabled = yes
+ destination = localhost:4242
+ username = my_username
+ password = my_password
+ - name: 'Using `send hosts matching`'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ [opentsdb:my_opentsdb_instance]
+ enabled = yes
+ destination = localhost:4242
+ send hosts matching = localhost *
+ - name: 'Using `send charts matching`'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ [opentsdb:my_opentsdb_instance]
+ enabled = yes
+ destination = localhost:4242
+ send charts matching = *
diff --git a/exporting/prometheus/metadata.yaml b/exporting/prometheus/metadata.yaml
new file mode 100644
index 000000000..906d8ea36
--- /dev/null
+++ b/exporting/prometheus/metadata.yaml
@@ -0,0 +1,436 @@
+# yamllint disable rule:line-length
+---
+- &promexport
+ id: 'export-prometheus-remote'
+ meta: &meta
+ name: 'Prometheus Remote Write'
+ link: 'https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage'
+ categories:
+ - export
+ icon_filename: 'prometheus.svg'
+ keywords:
+ - exporter
+ - Prometheus
+ - remote write
+ - time series
+ overview:
+ exporter_description: |
+ Use the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.
+ exporter_limitations: 'The remote write exporting connector does not support buffer on failures.'
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - Netdata and the external storage provider of your choice, installed, configured and operational.
+ - `protobuf` and `snappy` libraries installed.
+ - Netdata reinstalled after the libraries.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: 'The following options can be defined for this exporter.'
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'no'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003
+ ```
+ Example IPv6 and IPv4 together:
+ ```yaml
+ destination = [ffff:...:0001]:2003 10.11.12.1:2003
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '20000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Example configuration'
+ folding:
+ enabled: false
+ description: 'Basic example configuration for Prometheus remote write.'
+ config: |
+ [prometheus_remote_write:my_instance]
+ enabled = yes
+ destination = 10.11.14.2:2003
+ remote write URL path = /receive
+ - name: 'Example configuration with HTTPS and HTTP authentication'
+ folding:
+ enabled: false
+ description: 'Add `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.'
+ config: |
+ [prometheus_remote_write:https:my_instance]
+ enabled = yes
+ destination = 10.11.14.2:2003
+ remote write URL path = /receive
+ username = my_username
+ password = my_password
+- <<: *promexport
+ id: 'export-appoptics'
+ meta:
+ <<: *meta
+ name: AppOptics
+ link: https://www.solarwinds.com/appoptics
+ icon_filename: 'solarwinds.svg'
+ keywords:
+ - app optics
+ - AppOptics
+ - Solarwinds
+- <<: *promexport
+ id: 'export-azure-data'
+ meta:
+ <<: *meta
+ name: Azure Data Explorer
+ link: https://azure.microsoft.com/en-us/pricing/details/data-explorer/
+ icon_filename: 'azuredataex.jpg'
+ keywords:
+ - Azure Data Explorer
+ - Azure
+- <<: *promexport
+ id: 'export-azure-event'
+ meta:
+ <<: *meta
+ name: Azure Event Hub
+ link: https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about
+ icon_filename: 'azureeventhub.png'
+ keywords:
+ - Azure Event Hub
+ - Azure
+- <<: *promexport
+ id: 'export-newrelic'
+ meta:
+ <<: *meta
+ name: New Relic
+ link: https://newrelic.com/
+ icon_filename: 'newrelic.svg'
+ keywords:
+ - export
+ - NewRelic
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-quasar'
+ meta:
+ <<: *meta
+ name: QuasarDB
+ link: https://doc.quasar.ai/master/
+ icon_filename: 'quasar.jpeg'
+ keywords:
+ - export
+ - quasar
+ - quasarDB
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-splunk'
+ meta:
+ <<: *meta
+ name: Splunk SignalFx
+ link: https://www.splunk.com/en_us/products/observability.html
+ icon_filename: 'splunk.svg'
+ keywords:
+ - export
+ - splunk
+ - signalfx
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-tikv'
+ meta:
+ <<: *meta
+ name: TiKV
+ link: https://tikv.org/
+ icon_filename: 'tikv.png'
+ keywords:
+ - export
+ - TiKV
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-thanos'
+ meta:
+ <<: *meta
+ name: Thanos
+ link: https://thanos.io/
+ icon_filename: 'thanos.png'
+ keywords:
+ - export
+ - thanos
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-victoria'
+ meta:
+ <<: *meta
+ name: VictoriaMetrics
+ link: https://victoriametrics.com/products/open-source/
+ icon_filename: 'victoriametrics.png'
+ keywords:
+ - export
+ - victoriametrics
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-vmware'
+ meta:
+ <<: *meta
+ name: VMware Aria
+ link: https://www.vmware.com/products/aria-operations-for-applications.html
+ icon_filename: 'aria.png'
+ keywords:
+ - export
+ - VMware
+ - Aria
+ - Tanzu
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-chronix'
+ meta:
+ <<: *meta
+ name: Chronix
+ link: https://dbdb.io/db/chronix
+ icon_filename: 'chronix.png'
+ keywords:
+ - export
+ - chronix
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-cortex'
+ meta:
+ <<: *meta
+ name: Cortex
+ link: https://cortexmetrics.io/
+ icon_filename: 'cortex.png'
+ keywords:
+ - export
+ - cortex
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-crate'
+ meta:
+ <<: *meta
+ name: CrateDB
+ link: https://crate.io/
+ icon_filename: 'crate.svg'
+ keywords:
+ - export
+ - CrateDB
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-elastic'
+ meta:
+ <<: *meta
+ name: ElasticSearch
+ link: https://www.elastic.co/
+ icon_filename: 'elasticsearch.svg'
+ keywords:
+ - export
+ - ElasticSearch
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-gnocchi'
+ meta:
+ <<: *meta
+ name: Gnocchi
+ link: https://wiki.openstack.org/wiki/Gnocchi
+ icon_filename: 'gnocchi.svg'
+ keywords:
+ - export
+ - Gnocchi
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-bigquery'
+ meta:
+ <<: *meta
+ name: Google BigQuery
+ link: https://cloud.google.com/bigquery/
+ icon_filename: 'bigquery.png'
+ keywords:
+ - export
+ - Google BigQuery
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-irondb'
+ meta:
+ <<: *meta
+ name: IRONdb
+ link: https://docs.circonus.com/irondb/
+ icon_filename: 'irondb.png'
+ keywords:
+ - export
+ - IRONdb
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-kafka'
+ meta:
+ <<: *meta
+ name: Kafka
+ link: https://kafka.apache.org/
+ icon_filename: 'kafka.svg'
+ keywords:
+ - export
+ - Kafka
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-m3db'
+ meta:
+ <<: *meta
+ name: M3DB
+ link: https://m3db.io/
+ icon_filename: 'm3db.png'
+ keywords:
+ - export
+ - M3DB
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-metricfire'
+ meta:
+ <<: *meta
+ name: MetricFire
+ link: https://www.metricfire.com/
+ icon_filename: 'metricfire.png'
+ keywords:
+ - export
+ - MetricFire
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-pgsql'
+ meta:
+ <<: *meta
+ name: PostgreSQL
+ link: https://www.postgresql.org/
+ icon_filename: 'postgres.svg'
+ keywords:
+ - export
+ - PostgreSQL
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-wavefront'
+ meta:
+ <<: *meta
+ name: Wavefront
+ link: https://docs.wavefront.com/wavefront_data_ingestion.html
+ icon_filename: 'wavefront.png'
+ keywords:
+ - export
+ - Wavefront
+ - prometheus
+ - remote write
+- <<: *promexport
+ id: 'export-timescaledb'
+ meta:
+ <<: *meta
+ name: TimescaleDB
+ link: https://www.timescale.com/
+ icon_filename: 'timescale.png'
+ keywords:
+ - export
+ - TimescaleDB
+ - prometheus
+ - remote write
diff --git a/exporting/pubsub/metadata.yaml b/exporting/pubsub/metadata.yaml
new file mode 100644
index 000000000..7f57bb809
--- /dev/null
+++ b/exporting/pubsub/metadata.yaml
@@ -0,0 +1,152 @@
+# yamllint disable rule:line-length
+---
+id: 'export-google-pubsub'
+meta:
+ name: 'Google Cloud Pub Sub'
+ link: 'https://cloud.google.com/pubsub'
+ categories:
+ - export
+ icon_filename: 'pubsub.png'
+keywords:
+ - exporter
+ - Google Cloud
+ - Pub Sub
+overview:
+ exporter_description: |
+ Export metrics to Google Cloud Pub/Sub Service
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - First [install](https://github.com/googleapis/google-cloud-cpp/) install Google Cloud Platform C++ Client Libraries
+ - Pub/Sub support is also dependent on the dependencies of those libraries, like `protobuf`, `protoc`, and `grpc`
+ - Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.
+ configuration:
+ file:
+ name: 'exporting.conf'
+ options:
+ description: |
+ The following options can be defined for this exporter.
+ folding:
+ title: 'Config options'
+ enabled: true
+ list:
+ - name: 'enabled'
+ default_value: 'no'
+ description: 'Enables or disables an exporting connector instance (yes|no).'
+ required: true
+ - name: 'destination'
+ default_value: 'pubsub.googleapis.com'
+ description: 'Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics.'
+ required: true
+ detailed_description: |
+ The format of each item in this list, is: [PROTOCOL:]IP[:PORT].
+ - PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.
+ - IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.
+ - PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.
+
+ Example IPv4:
+ ```yaml
+ destination = pubsub.googleapis.com
+ ```
+ When multiple servers are defined, Netdata will try the next one when the previous one fails.
+ - name: 'username'
+ default_value: 'my_username'
+ description: 'Username for HTTP authentication'
+ required: false
+ - name: 'password'
+ default_value: 'my_password'
+ description: 'Password for HTTP authentication'
+ required: false
+ - name: 'data source'
+ default_value: ''
+ description: 'Selects the kind of data that will be sent to the external database. (as collected|average|sum)'
+ required: false
+ - name: 'hostname'
+ default_value: '[global].hostname'
+ description: 'The hostname to be used for sending data to the external database server.'
+ required: false
+ - name: 'prefix'
+ default_value: 'Netdata'
+ description: 'The prefix to add to all metrics.'
+ required: false
+ - name: 'update every'
+ default_value: '10'
+ description: |
+ Frequency of sending sending data to the external database, in seconds.
+ required: false
+ detailed_description: |
+ Netdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers
+ send data to the same database. This randomness does not affect the quality of the data, only the time they are sent.
+ - name: 'buffer on failures'
+ default_value: '10'
+ description: |
+ The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.
+ required: false
+ detailed_description: |
+ If the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).
+ - name: 'timeout ms'
+ default_value: '2 * update_every * 1000'
+ description: 'The timeout in milliseconds to wait for the external database server to process the data.'
+ required: false
+ - name: 'send hosts matching'
+ default_value: 'localhost *'
+ description: |
+ Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).
+ required: false
+ detailed_description: |
+ Includes one or more space separated patterns, using * as wildcard (any number of times within each pattern).
+ The patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to
+ filter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.
+
+ A pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,
+ use `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).
+ - name: 'send charts matching'
+ default_value: '*'
+ description: |
+ One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.
+ required: false
+ detailed_description: |
+ A pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,
+ use !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,
+ positive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter
+ has a higher priority than the configuration option.
+ - name: 'send names instead of ids'
+ default_value: ''
+ description: 'Controls the metric names Netdata should send to the external database (yes|no).'
+ required: false
+ detailed_description: |
+ Netdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names
+ are human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are
+ different : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.
+ - name: 'send configured labels'
+ default_value: ''
+ description: 'Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no).'
+ required: false
+ - name: 'send automatic labels'
+ default_value: ''
+ description: 'Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no).'
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic configuration'
+ folding:
+ enabled: false
+ description: |
+ - Set the destination option to a Pub/Sub service endpoint. pubsub.googleapis.com is the default one.
+ - Create the credentials JSON file by following Google Cloud's authentication guide.
+ - The user running the Agent (typically netdata) needs read access to google_cloud_credentials.json, which you can set
+ `chmod 400 google_cloud_credentials.json; chown netdata google_cloud_credentials.json`
+ - Set the credentials file option to the full path of the file.
+ config: |
+ [pubsub:my_instance]
+ enabled = yes
+ destination = pubsub.googleapis.com
+ credentials file = /etc/netdata/google_cloud_credentials.json
+ project id = my_project
+ topic id = my_topic
diff --git a/exporting/sample-metadata.yaml b/exporting/sample-metadata.yaml
new file mode 100644
index 000000000..41a287aeb
--- /dev/null
+++ b/exporting/sample-metadata.yaml
@@ -0,0 +1,39 @@
+id: ''
+meta:
+ name: ''
+ link: ''
+ categories: []
+ icon_filename: ''
+keywords: []
+overview:
+ exporter_description: ''
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: ''
+ configuration:
+ file:
+ name: ''
+ description: ''
+ options:
+ description: ''
+ folding:
+ title: ''
+ enabled: true
+ list:
+ - name: ''
+ default_value: ''
+ description: ''
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: ''
+ folding:
+ enabled: false
+ description: ''
+ config: ''
diff --git a/health/REFERENCE.md b/health/REFERENCE.md
index a36edd8cf..e5179b4e5 100644
--- a/health/REFERENCE.md
+++ b/health/REFERENCE.md
@@ -485,7 +485,7 @@ The full [database query API](https://github.com/netdata/netdata/blob/master/web
`,` or `|` instead of spaces)_ and the `match-ids` and `match-names` options affect the searches
for dimensions.
-- `foreach DIMENSIONS` is optional, will always be the last parameter, and uses the same `,`/`|`
+- `foreach DIMENSIONS` is optional and works only with [templates](#alarm-line-alarm-or-template), will always be the last parameter, and uses the same `,`/`|`
rules as the `of` parameter. Each dimension you specify in `foreach` will use the same rule
to trigger an alarm. If you set both `of` and `foreach`, Netdata will ignore the `of` parameter
and replace it with one of the dimensions you gave to `foreach`. This option allows you to
@@ -1068,18 +1068,18 @@ alarm to it.
Check if user or system dimension is using more than 50% of cpu:
```yaml
- alarm: dim_template
- on: system.cpu
- os: linux
-lookup: average -3s percentage foreach system,user
- units: %
- every: 10s
- warn: $this > 50
- crit: $this > 80
+template: cpu_template
+ on: system.cpu
+ os: linux
+ lookup: average -1m foreach system,user
+ units: %
+ every: 10s
+ warn: $this > 50
+ crit: $this > 80
```
-The `lookup` line will calculate the average CPU usage from system and user in the last 3 seconds. Because we have
-the foreach in the `lookup` line, Netdata will create two independent alarms called `dim_template_system`
+The `lookup` line will calculate the average CPU usage from system and user over the last minute. Because we have
+the foreach in the `lookup` line, Netdata will create two independent alarms called `cpu_template_system`
and `dim_template_user` that will have all the other parameters shared among them.
### Example 6 - CPU usage
@@ -1087,17 +1087,17 @@ and `dim_template_user` that will have all the other parameters shared among the
Check if all dimensions are using more than 50% of cpu:
```yaml
- alarm: dim_template
- on: system.cpu
- os: linux
-lookup: average -3s percentage foreach *
- units: %
- every: 10s
- warn: $this > 50
- crit: $this > 80
+template: cpu_template
+ on: system.cpu
+ os: linux
+ lookup: average -1m foreach *
+ units: %
+ every: 10s
+ warn: $this > 50
+ crit: $this > 80
```
-The `lookup` line will calculate the average of CPU usage from system and user in the last 3 seconds. In this case
+The `lookup` line will calculate the average of CPU usage from system and user over the last minute. In this case
Netdata will create alarms for all dimensions of the chart.
### Example 7 - Z-Score based alarm
@@ -1199,6 +1199,8 @@ Dimension templates can condense many individual entities into one—no more cop
### The fundamentals of `foreach`
+> **Note**: works only with [templates](#alarm-line-alarm-or-template).
+
Our dimension templates update creates a new `foreach` parameter to the
existing [`lookup` line](#alarm-line-lookup). This
is where the magic happens.
@@ -1224,38 +1226,38 @@ Before dimension templates, you would need the following three entities:
```yaml
alarm: cpu_system
on: system.cpu
-lookup: average -10m percentage of system
+lookup: average -10m of system
every: 1m
warn: $this > 50
crit: $this > 80
alarm: cpu_user
on: system.cpu
-lookup: average -10m percentage of user
+lookup: average -10m of user
every: 1m
warn: $this > 50
crit: $this > 80
alarm: cpu_nice
on: system.cpu
-lookup: average -10m percentage of nice
+lookup: average -10m of nice
every: 1m
warn: $this > 50
crit: $this > 80
```
-With dimension templates, you can condense these into a single alarm. Take note of the `alarm` and `lookup` lines.
+With dimension templates, you can condense these into a single template. Take note of the `alarm` and `lookup` lines.
```yaml
- alarm: cpu_template
- on: system.cpu
-lookup: average -10m percentage foreach system,user,nice
- every: 1m
- warn: $this > 50
- crit: $this > 80
+template: cpu_template
+ on: system.cpu
+ lookup: average -10m foreach system,user,nice
+ every: 1m
+ warn: $this > 50
+ crit: $this > 80
```
-The `alarm` line specifies the naming scheme Netdata will use. You can use whatever naming scheme you'd like, with `.`
+The `template` line specifies the naming scheme Netdata will use. You can use whatever naming scheme you'd like, with `.`
and `_` being the only allowed symbols.
The `lookup` line has changed from `of` to `foreach`, and we're now passing three dimensions.
diff --git a/health/health.c b/health/health.c
index eeed3a674..d94c33161 100644
--- a/health/health.c
+++ b/health/health.c
@@ -433,14 +433,14 @@ static inline void health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
if(unlikely(ae->new_status < RRDCALC_STATUS_CLEAR)) {
// do not send notifications for internal statuses
- netdata_log_debug(D_HEALTH, "Health not sending notification for alarm '%s.%s' status %s (internal statuses)", ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_debug(D_HEALTH, "Health not sending notification for alarm '%s.%s' status %s (internal statuses)", ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
goto done;
}
if(unlikely(ae->new_status <= RRDCALC_STATUS_CLEAR && (ae->flags & HEALTH_ENTRY_FLAG_NO_CLEAR_NOTIFICATION))) {
// do not send notifications for disabled statuses
- netdata_log_debug(D_HEALTH, "Health not sending notification for alarm '%s.%s' status %s (it has no-clear-notification enabled)", ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
- netdata_log_health("[%s]: Health not sending notification for alarm '%s.%s' status %s (it has no-clear-notification enabled)", rrdhost_hostname(host), ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_debug(D_HEALTH, "Health not sending notification for alarm '%s.%s' status %s (it has no-clear-notification enabled)", ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_health("[%s]: Health not sending notification for alarm '%s.%s' status %s (it has no-clear-notification enabled)", rrdhost_hostname(host), ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
// mark it as run, so that we will send the same alarm if it happens again
goto done;
@@ -457,9 +457,9 @@ static inline void health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
// we have executed this alarm notification in the past
if(last_executed_status == ae->new_status && !(ae->flags & HEALTH_ENTRY_FLAG_IS_REPEATING)) {
// don't send the notification for the same status again
- netdata_log_debug(D_HEALTH, "Health not sending again notification for alarm '%s.%s' status %s", ae_chart_name(ae), ae_name(ae)
+ netdata_log_debug(D_HEALTH, "Health not sending again notification for alarm '%s.%s' status %s", ae_chart_id(ae), ae_name(ae)
, rrdcalc_status2string(ae->new_status));
- netdata_log_health("[%s]: Health not sending again notification for alarm '%s.%s' status %s", rrdhost_hostname(host), ae_chart_name(ae), ae_name(ae)
+ netdata_log_health("[%s]: Health not sending again notification for alarm '%s.%s' status %s", rrdhost_hostname(host), ae_chart_id(ae), ae_name(ae)
, rrdcalc_status2string(ae->new_status));
goto done;
}
@@ -470,7 +470,7 @@ static inline void health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
if(unlikely(ae->new_status == RRDCALC_STATUS_CLEAR)) {
if((!(ae->flags & HEALTH_ENTRY_RUN_ONCE)) || (ae->flags & HEALTH_ENTRY_RUN_ONCE && ae->old_status < RRDCALC_STATUS_RAISED) ) {
netdata_log_debug(D_HEALTH, "Health not sending notification for first initialization of alarm '%s.%s' status %s"
- , ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ , ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
goto done;
}
}
@@ -479,11 +479,11 @@ static inline void health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
// Check if alarm notifications are silenced
if (ae->flags & HEALTH_ENTRY_FLAG_SILENCED) {
- netdata_log_health("[%s]: Health not sending notification for alarm '%s.%s' status %s (command API has disabled notifications)", rrdhost_hostname(host), ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_health("[%s]: Health not sending notification for alarm '%s.%s' status %s (command API has disabled notifications)", rrdhost_hostname(host), ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
goto done;
}
- netdata_log_health("[%s]: Sending notification for alarm '%s.%s' status %s.", rrdhost_hostname(host), ae_chart_name(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_health("[%s]: Sending notification for alarm '%s.%s' status %s.", rrdhost_hostname(host), ae_chart_id(ae), ae_name(ae), rrdcalc_status2string(ae->new_status));
const char *exec = (ae->exec) ? ae_exec(ae) : string2str(host->health.health_default_exec);
const char *recipient = (ae->recipient) ? ae_recipient(ae) : string2str(host->health.health_default_recipient);
@@ -562,7 +562,7 @@ static inline void health_alarm_execute(RRDHOST *host, ALARM_ENTRY *ae) {
ae->alarm_event_id,
(unsigned long)ae->when,
ae_name(ae),
- ae->chart?ae_chart_name(ae):"NOCHART",
+ ae->chart?ae_chart_id(ae):"NOCHART",
ae->family?ae_family(ae):"NOFAMILY",
rrdcalc_status2string(ae->new_status),
rrdcalc_status2string(ae->old_status),
@@ -627,7 +627,7 @@ static inline void health_alarm_wait_for_execution(ALARM_ENTRY *ae) {
static inline void health_process_notifications(RRDHOST *host, ALARM_ENTRY *ae) {
netdata_log_debug(D_HEALTH, "Health alarm '%s.%s' = " NETDATA_DOUBLE_FORMAT_AUTO " - changed status from %s to %s",
- ae->chart?ae_chart_name(ae):"NOCHART", ae_name(ae),
+ ae->chart?ae_chart_id(ae):"NOCHART", ae_name(ae),
ae->new_value,
rrdcalc_status2string(ae->old_status),
rrdcalc_status2string(ae->new_status)
@@ -844,8 +844,9 @@ static void initialize_health(RRDHOST *host)
host->health.health_default_exec = string_strdupz(config_get(CONFIG_SECTION_HEALTH, "script to execute on alarm", filename));
host->health.health_default_recipient = string_strdupz("root");
- // TODO: This needs to go to the metadata thread
- // Health should wait before accessing the table (needs to be created by the metadata thread)
+ //if (!is_chart_name_populated(&host->host_uuid))
+ // chart_name_populate(&host->host_uuid);
+
sql_health_alarm_log_load(host);
// ------------------------------------------------------------------------
@@ -1156,6 +1157,7 @@ void *health_main(void *ptr) {
rc->name,
rc->rrdset->id,
rc->rrdset->context,
+ rc->rrdset->name,
rc->rrdset->family,
rc->classification,
rc->component,
@@ -1422,6 +1424,7 @@ void *health_main(void *ptr) {
rc->name,
rc->rrdset->id,
rc->rrdset->context,
+ rc->rrdset->name,
rc->rrdset->family,
rc->classification,
rc->component,
@@ -1446,7 +1449,7 @@ void *health_main(void *ptr) {
health_alarm_log_add_entry(host, ae);
- netdata_log_health("[%s]: Alert event for [%s.%s], value [%s], status [%s].", rrdhost_hostname(host), ae_chart_name(ae), ae_name(ae), ae_new_value_string(ae), rrdcalc_status2string(ae->new_status));
+ netdata_log_health("[%s]: Alert event for [%s.%s], value [%s], status [%s].", rrdhost_hostname(host), ae_chart_id(ae), ae_name(ae), ae_new_value_string(ae), rrdcalc_status2string(ae->new_status));
rc->last_status_change_value = rc->value;
rc->last_status_change = now;
@@ -1508,6 +1511,7 @@ void *health_main(void *ptr) {
rc->name,
rc->rrdset->id,
rc->rrdset->context,
+ rc->rrdset->name,
rc->rrdset->family,
rc->classification,
rc->component,
diff --git a/health/health.d/bcache.conf b/health/health.d/bcache.conf
index 3f92e80df..8492bb6c7 100644
--- a/health/health.d/bcache.conf
+++ b/health/health.d/bcache.conf
@@ -12,7 +12,7 @@ component: Disk
info: number of times data was read from the cache, \
the bucket was reused and invalidated in the last 10 minutes \
(when this occurs the data is reread from the backing device)
- to: sysadmin
+ to: silent
template: bcache_cache_dirty
on: disk.bcache_cache_alloc
@@ -26,4 +26,4 @@ component: Disk
delay: up 1m down 1h multiplier 1.5 max 2h
info: percentage of cache space used for dirty data and metadata \
(this usually means your SSD cache is too small)
- to: sysadmin
+ to: silent
diff --git a/health/health.d/btrfs.conf b/health/health.d/btrfs.conf
index 97b7a3a94..b2a50682b 100644
--- a/health/health.d/btrfs.conf
+++ b/health/health.d/btrfs.conf
@@ -9,11 +9,10 @@ component: File system
calc: 100 - ($unallocated * 100 / ($unallocated + $data_used + $data_free + $meta_used + $meta_free + $sys_used + $sys_free))
units: %
every: 10s
- warn: $this > (($status >= $WARNING) ? (90) : (95))
- crit: $this > (($status == $CRITICAL) ? (95) : (98))
+ warn: $this > (($status == $CRITICAL) ? (95) : (98))
delay: up 1m down 15m multiplier 1.5 max 1h
info: percentage of allocated BTRFS physical disk space
- to: sysadmin
+ to: silent
template: btrfs_data
on: btrfs.data
@@ -86,7 +85,7 @@ component: File system
hosts: *
units: errors
lookup: max -10m every 1m of write_errs
- warn: $this > 0
+ crit: $this > 0
delay: up 1m down 15m multiplier 1.5 max 1h
info: number of encountered BTRFS write errors
to: sysadmin
@@ -100,7 +99,7 @@ component: File system
hosts: *
units: errors
lookup: max -10m every 1m of flush_errs
- warn: $this > 0
+ crit: $this > 0
delay: up 1m down 15m multiplier 1.5 max 1h
info: number of encountered BTRFS flush errors
to: sysadmin
diff --git a/health/health.d/cgroups.conf b/health/health.d/cgroups.conf
index f625e5455..53a6ea00f 100644
--- a/health/health.d/cgroups.conf
+++ b/health/health.d/cgroups.conf
@@ -11,11 +11,10 @@ component: CPU
lookup: average -10m unaligned
units: %
every: 1m
- warn: $this > (($status >= $WARNING) ? (75) : (85))
- crit: $this > (($status == $CRITICAL) ? (85) : (95))
+ warn: $this > (($status == $CRITICAL) ? (85) : (95))
delay: down 15m multiplier 1.5 max 1h
info: average cgroup CPU utilization over the last 10 minutes
- to: sysadmin
+ to: silent
template: cgroup_ram_in_use
on: cgroup.mem_usage
@@ -31,44 +30,45 @@ component: Memory
crit: $this > (($status == $CRITICAL) ? (90) : (98))
delay: down 15m multiplier 1.5 max 1h
info: cgroup memory utilization
- to: sysadmin
-
-# -----------------------------------------------------------------------------
-# check for packet storms
-
-# 1. calculate the rate packets are received in 1m: 1m_received_packets_rate
-# 2. do the same for the last 10s
-# 3. raise an alarm if the later is 10x or 20x the first
-# we assume the minimum packet storm should at least have
-# 10000 packets/s, average of the last 10 seconds
-
- template: cgroup_1m_received_packets_rate
- on: cgroup.net_packets
- class: Workload
- type: Cgroups
-component: Network
- hosts: *
- lookup: average -1m unaligned of received
- units: packets
- every: 10s
- info: average number of packets received by the network interface ${label:device} over the last minute
-
- template: cgroup_10s_received_packets_storm
- on: cgroup.net_packets
- class: Workload
- type: Cgroups
-component: Network
- hosts: *
- lookup: average -10s unaligned of received
- calc: $this * 100 / (($1m_received_packets_rate < 1000)?(1000):($1m_received_packets_rate))
- every: 10s
- units: %
- warn: $this > (($status >= $WARNING)?(200):(5000))
- options: no-clear-notification
- info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, \
- compared to the rate over the last minute
- to: sysadmin
+ to: silent
+# FIXME COMMENTED DUE TO A BUG IN NETDATA
+## -----------------------------------------------------------------------------
+## check for packet storms
+#
+## 1. calculate the rate packets are received in 1m: 1m_received_packets_rate
+## 2. do the same for the last 10s
+## 3. raise an alarm if the later is 10x or 20x the first
+## we assume the minimum packet storm should at least have
+## 10000 packets/s, average of the last 10 seconds
+#
+# template: cgroup_1m_received_packets_rate
+# on: cgroup.net_packets
+# class: Workload
+# type: Cgroups
+#component: Network
+# hosts: *
+# lookup: average -1m unaligned of received
+# units: packets
+# every: 10s
+# info: average number of packets received by the network interface ${label:device} over the last minute
+#
+# template: cgroup_10s_received_packets_storm
+# on: cgroup.net_packets
+# class: Workload
+# type: Cgroups
+#component: Network
+# hosts: *
+# lookup: average -10s unaligned of received
+# calc: $this * 100 / (($1m_received_packets_rate < 1000)?(1000):($1m_received_packets_rate))
+# every: 10s
+# units: %
+# warn: $this > (($status >= $WARNING)?(200):(5000))
+# options: no-clear-notification
+# info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, \
+# compared to the rate over the last minute
+# to: sysadmin
+#
# ---------------------------------K8s containers--------------------------------------------
template: k8s_cgroup_10min_cpu_usage
@@ -83,8 +83,9 @@ component: CPU
every: 1m
warn: $this > (($status >= $WARNING) ? (75) : (85))
delay: down 15m multiplier 1.5 max 1h
- info: average cgroup CPU utilization over the last 10 minutes
- to: sysadmin
+ info: container ${label:k8s_container_name} of pod ${label:k8s_pod_name} of namespace ${label:k8s_namespace}, \
+ average CPU utilization over the last 10 minutes
+ to: silent
template: k8s_cgroup_ram_in_use
on: k8s.cgroup.mem_usage
@@ -99,40 +100,42 @@ component: Memory
warn: $this > (($status >= $WARNING) ? (80) : (90))
crit: $this > (($status == $CRITICAL) ? (90) : (98))
delay: down 15m multiplier 1.5 max 1h
- info: cgroup memory utilization
- to: sysadmin
+ info: container ${label:k8s_container_name} of pod ${label:k8s_pod_name} of namespace ${label:k8s_namespace}, \
+ memory utilization
+ to: silent
# check for packet storms
-# 1. calculate the rate packets are received in 1m: 1m_received_packets_rate
-# 2. do the same for the last 10s
-# 3. raise an alarm if the later is 10x or 20x the first
-# we assume the minimum packet storm should at least have
-# 10000 packets/s, average of the last 10 seconds
-
- template: k8s_cgroup_1m_received_packets_rate
- on: k8s.cgroup.net_packets
- class: Workload
- type: Cgroups
-component: Network
- hosts: *
- lookup: average -1m unaligned of received
- units: packets
- every: 10s
- info: average number of packets received by the network interface ${label:device} over the last minute
-
- template: k8s_cgroup_10s_received_packets_storm
- on: k8s.cgroup.net_packets
- class: Workload
- type: Cgroups
-component: Network
- hosts: *
- lookup: average -10s unaligned of received
- calc: $this * 100 / (($k8s_cgroup_10s_received_packets_storm < 1000)?(1000):($k8s_cgroup_10s_received_packets_storm))
- every: 10s
- units: %
- warn: $this > (($status >= $WARNING)?(200):(5000))
- options: no-clear-notification
- info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, \
- compared to the rate over the last minute
- to: sysadmin
+# FIXME COMMENTED DUE TO A BUG IN NETDATA
+## 1. calculate the rate packets are received in 1m: 1m_received_packets_rate
+## 2. do the same for the last 10s
+## 3. raise an alarm if the later is 10x or 20x the first
+## we assume the minimum packet storm should at least have
+## 10000 packets/s, average of the last 10 seconds
+#
+# template: k8s_cgroup_1m_received_packets_rate
+# on: k8s.cgroup.net_packets
+# class: Workload
+# type: Cgroups
+#component: Network
+# hosts: *
+# lookup: average -1m unaligned of received
+# units: packets
+# every: 10s
+# info: average number of packets received by the network interface ${label:device} over the last minute
+#
+# template: k8s_cgroup_10s_received_packets_storm
+# on: k8s.cgroup.net_packets
+# class: Workload
+# type: Cgroups
+#component: Network
+# hosts: *
+# lookup: average -10s unaligned of received
+# calc: $this * 100 / (($k8s_cgroup_10s_received_packets_storm < 1000)?(1000):($k8s_cgroup_10s_received_packets_storm))
+# every: 10s
+# units: %
+# warn: $this > (($status >= $WARNING)?(200):(5000))
+# options: no-clear-notification
+# info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, \
+# compared to the rate over the last minute
+# to: sysadmin
diff --git a/health/health.d/cpu.conf b/health/health.d/cpu.conf
index 907d6ff8a..4de5edd75 100644
--- a/health/health.d/cpu.conf
+++ b/health/health.d/cpu.conf
@@ -15,7 +15,7 @@ component: CPU
crit: $this > (($status == $CRITICAL) ? (85) : (95))
delay: down 15m multiplier 1.5 max 1h
info: average CPU utilization over the last 10 minutes (excluding iowait, nice and steal)
- to: sysadmin
+ to: silent
template: 10min_cpu_iowait
on: system.cpu
@@ -28,9 +28,9 @@ component: CPU
units: %
every: 1m
warn: $this > (($status >= $WARNING) ? (20) : (40))
- delay: down 15m multiplier 1.5 max 1h
+ delay: up 30m down 30m multiplier 1.5 max 2h
info: average CPU iowait time over the last 10 minutes
- to: sysadmin
+ to: silent
template: 20min_steal_cpu
on: system.cpu
@@ -45,7 +45,7 @@ component: CPU
warn: $this > (($status >= $WARNING) ? (5) : (10))
delay: down 1h multiplier 1.5 max 2h
info: average CPU steal time over the last 20 minutes
- to: sysadmin
+ to: silent
## FreeBSD
template: 10min_cpu_usage
@@ -62,4 +62,4 @@ component: CPU
crit: $this > (($status == $CRITICAL) ? (85) : (95))
delay: down 15m multiplier 1.5 max 1h
info: average CPU utilization over the last 10 minutes (excluding nice)
- to: sysadmin
+ to: silent
diff --git a/health/health.d/disks.conf b/health/health.d/disks.conf
index 7bd4f120c..27f5d6691 100644
--- a/health/health.d/disks.conf
+++ b/health/health.d/disks.conf
@@ -21,7 +21,7 @@ chart labels: mount_point=!/dev !/dev/* !/run !/run/* *
units: %
every: 1m
warn: $this > (($status >= $WARNING ) ? (80) : (90))
- crit: $this > (($status == $CRITICAL) ? (90) : (98))
+ crit: ($this > (($status == $CRITICAL) ? (90) : (98))) && $avail < 5
delay: up 1m down 15m multiplier 1.5 max 1h
info: disk ${label:mount_point} space utilization
to: sysadmin
@@ -55,33 +55,32 @@ chart labels: mount_point=!/dev !/dev/* !/run !/run/* *
# we will use it in the next template to find
# the hours remaining
-# template: disk_fill_rate
-# on: disk.space
-# os: linux freebsd
-# hosts: *
-# lookup: min -10m at -50m unaligned of avail
-# calc: ($this - $avail) / (($now - $after) / 3600)
-# every: 1m
-# units: GB/hour
-# info: average rate the disk fills up (positive), or frees up (negative) space, for the last hour
-
+template: disk_fill_rate
+ on: disk.space
+ os: linux freebsd
+ hosts: *
+ lookup: min -10m at -50m unaligned of avail
+ calc: ($this - $avail) / (($now - $after) / 3600)
+ every: 1m
+ units: GB/hour
+ info: average rate the disk fills up (positive), or frees up (negative) space, for the last hour
# calculate the hours remaining
# if the disk continues to fill
# in this rate
-# template: out_of_disk_space_time
-# on: disk.space
-# os: linux freebsd
-# hosts: *
-# calc: ($disk_fill_rate > 0) ? ($avail / $disk_fill_rate) : (inf)
-# units: hours
-# every: 10s
-# warn: $this > 0 and $this < (($status >= $WARNING) ? (48) : (8))
-# crit: $this > 0 and $this < (($status == $CRITICAL) ? (24) : (2))
-# delay: down 15m multiplier 1.2 max 1h
-# info: estimated time the disk will run out of space, if the system continues to add data with the rate of the last hour
-# to: sysadmin
+template: out_of_disk_space_time
+ on: disk.space
+ os: linux freebsd
+ hosts: *
+ calc: ($disk_fill_rate > 0) ? ($avail / $disk_fill_rate) : (inf)
+ units: hours
+ every: 10s
+ warn: $this > 0 and $this < (($status >= $WARNING) ? (48) : (8))
+ crit: $this > 0 and $this < (($status == $CRITICAL) ? (24) : (2))
+ delay: down 15m multiplier 1.2 max 1h
+ info: estimated time the disk will run out of space, if the system continues to add data with the rate of the last hour
+ to: silent
# -----------------------------------------------------------------------------
@@ -95,32 +94,32 @@ chart labels: mount_point=!/dev !/dev/* !/run !/run/* *
# we will use it in the next template to find
# the hours remaining
-# template: disk_inode_rate
-# on: disk.inodes
-# os: linux freebsd
-# hosts: *
-# lookup: min -10m at -50m unaligned of avail
-# calc: ($this - $avail) / (($now - $after) / 3600)
-# every: 1m
-# units: inodes/hour
-# info: average rate at which disk inodes are allocated (positive), or freed (negative), for the last hour
+template: disk_inode_rate
+ on: disk.inodes
+ os: linux freebsd
+ hosts: *
+ lookup: min -10m at -50m unaligned of avail
+ calc: ($this - $avail) / (($now - $after) / 3600)
+ every: 1m
+ units: inodes/hour
+ info: average rate at which disk inodes are allocated (positive), or freed (negative), for the last hour
# calculate the hours remaining
# if the disk inodes are allocated
# in this rate
-# template: out_of_disk_inodes_time
-# on: disk.inodes
-# os: linux freebsd
-# hosts: *
-# calc: ($disk_inode_rate > 0) ? ($avail / $disk_inode_rate) : (inf)
-# units: hours
-# every: 10s
-# warn: $this > 0 and $this < (($status >= $WARNING) ? (48) : (8))
-# crit: $this > 0 and $this < (($status == $CRITICAL) ? (24) : (2))
-# delay: down 15m multiplier 1.2 max 1h
-# info: estimated time the disk will run out of inodes, if the system continues to allocate inodes with the rate of the last hour
-# to: sysadmin
+template: out_of_disk_inodes_time
+ on: disk.inodes
+ os: linux freebsd
+ hosts: *
+ calc: ($disk_inode_rate > 0) ? ($avail / $disk_inode_rate) : (inf)
+ units: hours
+ every: 10s
+ warn: $this > 0 and $this < (($status >= $WARNING) ? (48) : (8))
+ crit: $this > 0 and $this < (($status == $CRITICAL) ? (24) : (2))
+ delay: down 15m multiplier 1.2 max 1h
+ info: estimated time the disk will run out of inodes, if the system continues to allocate inodes with the rate of the last hour
+ to: silent
# -----------------------------------------------------------------------------
diff --git a/health/health.d/file_descriptors.conf b/health/health.d/file_descriptors.conf
index d136ea517..60bb8d384 100644
--- a/health/health.d/file_descriptors.conf
+++ b/health/health.d/file_descriptors.conf
@@ -20,12 +20,12 @@
type: System
component: Process
os: linux
- module: !* *
+ module: *
hosts: *
- lookup: max -1m unaligned foreach *
+ lookup: max -10s unaligned foreach *
units: %
- every: 1m
- warn: $this > (($status >= $WARNING) ? (85) : (90))
+ every: 10s
+ warn: $this > (($status >= $WARNING) ? (85) : (95))
delay: down 15m multiplier 1.5 max 1h
- info: maximum utilization of open files among all application group PIDs
+ info: open files percentage against the processes limits, among all PIDs in application group
to: sysadmin
diff --git a/health/health.d/ioping.conf b/health/health.d/ioping.conf
index 47ac4453c..5fd785b84 100644
--- a/health/health.d/ioping.conf
+++ b/health/health.d/ioping.conf
@@ -10,4 +10,4 @@ component: Disk
warn: $this > $green
delay: down 30m multiplier 1.5 max 2h
info: average I/O latency over the last 10 seconds
- to: sysadmin
+ to: silent
diff --git a/health/health.d/ipmi.conf b/health/health.d/ipmi.conf
index 4d6478cca..1775783df 100644
--- a/health/health.d/ipmi.conf
+++ b/health/health.d/ipmi.conf
@@ -23,4 +23,4 @@ component: IPMI
warn: $this > 0
delay: up 5m down 15m multiplier 1.5 max 1h
info: number of events in the IPMI System Event Log (SEL)
- to: sysadmin
+ to: silent
diff --git a/health/health.d/linux_power_supply.conf b/health/health.d/linux_power_supply.conf
index 4562122ca..71a5be284 100644
--- a/health/health.d/linux_power_supply.conf
+++ b/health/health.d/linux_power_supply.conf
@@ -11,4 +11,4 @@ component: Battery
warn: $this < 10
delay: up 30s down 5m multiplier 1.2 max 1h
info: percentage of remaining power supply capacity
- to: sysadmin
+ to: silent
diff --git a/health/health.d/load.conf b/health/health.d/load.conf
index 75989c57f..20f6781c8 100644
--- a/health/health.d/load.conf
+++ b/health/health.d/load.conf
@@ -34,7 +34,7 @@ component: Load
warn: ($this * 100 / $load_cpu_number) > (($status >= $WARNING) ? 175 : 200)
delay: down 15m multiplier 1.5 max 1h
info: system fifteen-minute load average
- to: sysadmin
+ to: silent
alarm: load_average_5
on: system.load
@@ -50,7 +50,7 @@ component: Load
warn: ($this * 100 / $load_cpu_number) > (($status >= $WARNING) ? 350 : 400)
delay: down 15m multiplier 1.5 max 1h
info: system five-minute load average
- to: sysadmin
+ to: silent
alarm: load_average_1
on: system.load
@@ -66,4 +66,4 @@ component: Load
warn: ($this * 100 / $load_cpu_number) > (($status >= $WARNING) ? 700 : 800)
delay: down 15m multiplier 1.5 max 1h
info: system one-minute load average
- to: sysadmin
+ to: silent
diff --git a/health/health.d/mdstat.conf b/health/health.d/mdstat.conf
index b90455a58..4dc0bf207 100644
--- a/health/health.d/mdstat.conf
+++ b/health/health.d/mdstat.conf
@@ -1,15 +1,3 @@
- template: mdstat_last_collected
- on: md.disks
- class: Latency
- type: System
-component: RAID
- calc: $now - $last_collected_t
- units: seconds ago
- every: 10s
- warn: $this > (($status >= $WARNING) ? ($update_every) : ( 5 * $update_every))
- crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every))
- info: number of seconds since the last successful data collection
- to: sysadmin
template: mdstat_disks
on: md.disks
@@ -19,7 +7,7 @@ component: RAID
units: failed devices
every: 10s
calc: $down
- crit: $this > 0
+ warn: $this > 0
info: number of devices in the down state for the ${label:device} ${label:raid_level} array. \
Any number > 0 indicates that the array is degraded.
to: sysadmin
@@ -36,7 +24,7 @@ chart labels: raid_level=!raid1 !raid10 *
warn: $this > 1024
delay: up 30m
info: number of unsynchronized blocks for the ${label:device} ${label:raid_level} array
- to: sysadmin
+ to: silent
template: mdstat_nonredundant_last_collected
on: md.nonredundant
diff --git a/health/health.d/memory.conf b/health/health.d/memory.conf
index 010cbbd7b..8badf09c4 100644
--- a/health/health.d/memory.conf
+++ b/health/health.d/memory.conf
@@ -1,47 +1,80 @@
-
# you can disable an alarm notification by setting the 'to' line to: silent
- alarm: 1hour_ecc_memory_correctable
- on: mem.ecc_ce
+ alarm: 1hour_memory_hw_corrupted
+ on: mem.hwcorrupt
class: Errors
type: System
component: Memory
os: linux
hosts: *
- lookup: sum -10m unaligned
+ calc: $HardwareCorrupted
+ units: MB
+ every: 10s
+ warn: $this > 0
+ delay: down 1h multiplier 1.5 max 1h
+ info: amount of memory corrupted due to a hardware failure
+ to: sysadmin
+
+## ECC Controller
+
+ template: ecc_memory_mc_correctable
+ on: mem.edac_mc
+ class: Errors
+ type: System
+component: Memory
+ os: linux
+ hosts: *
+ lookup: sum -10m unaligned of correctable, correctable_noinfo
units: errors
every: 1m
warn: $this > 0
delay: down 1h multiplier 1.5 max 1h
- info: number of ECC correctable errors in the last 10 minutes
+ info: memory controller ${label:controller} ECC correctable errors in the last 10 minutes
to: sysadmin
- alarm: 1hour_ecc_memory_uncorrectable
- on: mem.ecc_ue
+ template: ecc_memory_mc_uncorrectable
+ on: mem.edac_mc
class: Errors
type: System
component: Memory
os: linux
hosts: *
- lookup: sum -10m unaligned
+ lookup: sum -10m unaligned of uncorrectable,uncorrectable_noinfo
units: errors
every: 1m
crit: $this > 0
delay: down 1h multiplier 1.5 max 1h
- info: number of ECC uncorrectable errors in the last 10 minutes
+ info: memory controller ${label:controller} ECC uncorrectable errors in the last 10 minutes
to: sysadmin
- alarm: 1hour_memory_hw_corrupted
- on: mem.hwcorrupt
+## ECC DIMM
+
+ template: ecc_memory_dimm_correctable
+ on: mem.edac_mc_dimm
class: Errors
type: System
component: Memory
os: linux
hosts: *
- calc: $HardwareCorrupted
- units: MB
- every: 10s
+ lookup: sum -10m unaligned of correctable
+ units: errors
+ every: 1m
warn: $this > 0
delay: down 1h multiplier 1.5 max 1h
- info: amount of memory corrupted due to a hardware failure
+ info: DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC correctable errors in the last 10 minutes
+ to: sysadmin
+
+ template: ecc_memory_dimm_uncorrectable
+ on: mem.edac_mc_dimm
+ class: Errors
+ type: System
+component: Memory
+ os: linux
+ hosts: *
+ lookup: sum -10m unaligned of uncorrectable
+ units: errors
+ every: 1m
+ crit: $this > 0
+ delay: down 1h multiplier 1.5 max 1h
+ info: DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC uncorrectable errors in the last 10 minutes
to: sysadmin
diff --git a/health/health.d/net.conf b/health/health.d/net.conf
index 08a4eecb4..095d488da 100644
--- a/health/health.d/net.conf
+++ b/health/health.d/net.conf
@@ -30,7 +30,7 @@ component: Network
warn: $this > (($status >= $WARNING) ? (85) : (90))
delay: up 1m down 1m multiplier 1.5 max 1h
info: average inbound utilization for the network interface ${label:device} over the last minute
- to: sysadmin
+ to: silent
template: 1m_sent_traffic_overflow
on: net.net
@@ -46,7 +46,7 @@ component: Network
warn: $this > (($status >= $WARNING) ? (85) : (90))
delay: up 1m down 1m multiplier 1.5 max 1h
info: average outbound utilization for the network interface ${label:device} over the last minute
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# dropped packets
@@ -97,7 +97,7 @@ chart labels: device=!wl* *
warn: $this >= 2
delay: up 1m down 1h multiplier 1.5 max 2h
info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- to: sysadmin
+ to: silent
template: outbound_packets_dropped_ratio
on: net.packets
@@ -114,7 +114,7 @@ chart labels: device=!wl* *
warn: $this >= 2
delay: up 1m down 1h multiplier 1.5 max 2h
info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- to: sysadmin
+ to: silent
template: wifi_inbound_packets_dropped_ratio
on: net.packets
@@ -131,7 +131,7 @@ chart labels: device=wl*
warn: $this >= 10
delay: up 1m down 1h multiplier 1.5 max 2h
info: ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes
- to: sysadmin
+ to: silent
template: wifi_outbound_packets_dropped_ratio
on: net.packets
@@ -148,7 +148,7 @@ chart labels: device=wl*
warn: $this >= 10
delay: up 1m down 1h multiplier 1.5 max 2h
info: ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# interface errors
@@ -166,7 +166,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of inbound errors for the network interface ${label:device} in the last 10 minutes
- to: sysadmin
+ to: silent
template: interface_outbound_errors
on: net.errors
@@ -181,7 +181,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of outbound errors for the network interface ${label:device} in the last 10 minutes
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# FIFO errors
@@ -204,7 +204,7 @@ component: Network
warn: $this > 0
delay: down 1h multiplier 1.5 max 2h
info: number of FIFO errors for the network interface ${label:device} in the last 10 minutes
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# check for packet storms
@@ -243,4 +243,4 @@ component: Network
options: no-clear-notification
info: ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, \
compared to the rate over the last minute
- to: sysadmin
+ to: silent
diff --git a/health/health.d/qos.conf b/health/health.d/qos.conf
index 7290d15ff..4b0a5cb96 100644
--- a/health/health.d/qos.conf
+++ b/health/health.d/qos.conf
@@ -5,14 +5,13 @@
# the alarm is checked every 10 seconds
# and examines the last minute of data
-#template: 10min_qos_packet_drops
-# on: tc.qos_dropped
-# os: linux
-# hosts: *
-# lookup: sum -10m unaligned absolute
-# every: 30s
-# warn: $this > 0
-# delay: up 0 down 30m multiplier 1.5 max 1h
-# units: packets
-# info: dropped packets in the last 30 minutes
-# to: sysadmin
+template: 10min_qos_packet_drops
+ on: tc.qos_dropped
+ os: linux
+ hosts: *
+ lookup: sum -5m unaligned absolute
+ every: 30s
+ warn: $this > 0
+ units: packets
+ info: dropped packets in the last 5 minutes
+ to: silent
diff --git a/health/health.d/ram.conf b/health/health.d/ram.conf
index 34e5431a8..c121264f7 100644
--- a/health/health.d/ram.conf
+++ b/health/health.d/ram.conf
@@ -30,7 +30,7 @@ component: Memory
warn: $this < (($status >= $WARNING) ? (15) : (10))
delay: down 15m multiplier 1.5 max 1h
info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- to: sysadmin
+ to: silent
alarm: oom_kill
on: mem.oom_kill
@@ -41,9 +41,8 @@ component: Memory
every: 5m
warn: $this > 0
delay: down 10m
-host labels: _is_k8s_node = false
info: number of out of memory kills in the last 30 minutes
- to: sysadmin
+ to: silent
## FreeBSD
alarm: ram_in_use
@@ -75,4 +74,4 @@ component: Memory
warn: $this < (($status >= $WARNING) ? (15) : (10))
delay: down 15m multiplier 1.5 max 1h
info: percentage of estimated amount of RAM available for userspace processes, without causing swapping
- to: sysadmin
+ to: silent
diff --git a/health/health.d/softnet.conf b/health/health.d/softnet.conf
index 345f87505..b621d969d 100644
--- a/health/health.d/softnet.conf
+++ b/health/health.d/softnet.conf
@@ -17,7 +17,7 @@ component: Network
delay: down 1h multiplier 1.5 max 2h
info: average number of dropped packets in the last minute \
due to exceeded net.core.netdev_max_backlog
- to: sysadmin
+ to: silent
alarm: 1min_netdev_budget_ran_outs
on: system.softnet_stat
@@ -51,4 +51,4 @@ component: Network
info: average number of drops in the last minute \
due to exceeded sysctl net.route.netisr_maxqlen \
(this can be a cause for dropped packets)
- to: sysadmin
+ to: silent
diff --git a/health/health.d/swap.conf b/health/health.d/swap.conf
index d30c74cee..3adcae9db 100644
--- a/health/health.d/swap.conf
+++ b/health/health.d/swap.conf
@@ -2,7 +2,7 @@
# you can disable an alarm notification by setting the 'to' line to: silent
alarm: 30min_ram_swapped_out
- on: system.swapio
+ on: mem.swapio
class: Workload
type: System
component: Memory
@@ -16,10 +16,10 @@ component: Memory
warn: $this > (($status >= $WARNING) ? (20) : (30))
delay: down 15m multiplier 1.5 max 1h
info: percentage of the system RAM swapped in the last 30 minutes
- to: sysadmin
+ to: silent
alarm: used_swap
- on: system.swap
+ on: mem.swap
class: Utilization
type: System
component: Memory
diff --git a/health/health.d/synchronization.conf b/health/health.d/synchronization.conf
index 417624adb..837bb1b32 100644
--- a/health/health.d/synchronization.conf
+++ b/health/health.d/synchronization.conf
@@ -9,4 +9,4 @@
info: number of sync() system calls. \
Every call causes all pending modifications to filesystem metadata and \
cached file data to be written to the underlying filesystems.
- to: sysadmin
+ to: silent
diff --git a/health/health.d/systemdunits.conf b/health/health.d/systemdunits.conf
index 531d62fac..aadf8452b 100644
--- a/health/health.d/systemdunits.conf
+++ b/health/health.d/systemdunits.conf
@@ -6,6 +6,7 @@
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -20,6 +21,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -34,6 +36,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -48,6 +51,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -62,6 +66,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -76,6 +81,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -90,6 +96,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -104,6 +111,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -118,6 +126,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
@@ -132,6 +141,7 @@ component: Systemd units
class: Errors
type: Linux
component: Systemd units
+ module: !* *
calc: $failed
units: state
every: 10s
diff --git a/health/health.d/tcp_listen.conf b/health/health.d/tcp_listen.conf
index d4bcfa248..00ee055d0 100644
--- a/health/health.d/tcp_listen.conf
+++ b/health/health.d/tcp_listen.conf
@@ -32,7 +32,7 @@ component: Network
crit: $this > (($status == $CRITICAL) ? (1) : (5))
delay: up 0 down 5m multiplier 1.5 max 1h
info: average number of overflows in the TCP accept queue over the last minute
- to: sysadmin
+ to: silent
# THIS IS TOO GENERIC
# CHECK: https://github.com/netdata/netdata/issues/3234#issuecomment-423935842
@@ -50,7 +50,7 @@ component: Network
crit: $this > (($status == $CRITICAL) ? (1) : (5))
delay: up 0 down 5m multiplier 1.5 max 1h
info: average number of dropped packets in the TCP accept queue over the last minute
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
@@ -76,7 +76,7 @@ component: Network
delay: up 10 down 5m multiplier 1.5 max 1h
info: average number of SYN requests was dropped due to the full TCP SYN queue over the last minute \
(SYN cookies were not enabled)
- to: sysadmin
+ to: silent
alarm: 1m_tcp_syn_queue_cookies
on: ip.tcp_syn_queue
@@ -92,5 +92,5 @@ component: Network
crit: $this > (($status == $CRITICAL) ? (0) : (5))
delay: up 10 down 5m multiplier 1.5 max 1h
info: average number of sent SYN cookies due to the full TCP SYN queue over the last minute
- to: sysadmin
+ to: silent
diff --git a/health/health.d/tcp_mem.conf b/health/health.d/tcp_mem.conf
index 318be20ac..f472d9533 100644
--- a/health/health.d/tcp_mem.conf
+++ b/health/health.d/tcp_mem.conf
@@ -20,4 +20,4 @@ component: Network
crit: ${mem} > (($status == $CRITICAL ) ? ( ${tcp_mem_pressure} ) : ( ${tcp_mem_high} * 0.9 ))
delay: up 0 down 5m multiplier 1.5 max 1h
info: TCP memory utilization
- to: sysadmin
+ to: silent
diff --git a/health/health.d/tcp_orphans.conf b/health/health.d/tcp_orphans.conf
index cbd628da5..07022af30 100644
--- a/health/health.d/tcp_orphans.conf
+++ b/health/health.d/tcp_orphans.conf
@@ -21,4 +21,4 @@ component: Network
crit: $this > (($status == $CRITICAL) ? ( 25 ) : ( 50 ))
delay: up 0 down 5m multiplier 1.5 max 1h
info: orphan IPv4 TCP sockets utilization
- to: sysadmin
+ to: silent
diff --git a/health/health.d/tcp_resets.conf b/health/health.d/tcp_resets.conf
index ff116db64..089ac988d 100644
--- a/health/health.d/tcp_resets.conf
+++ b/health/health.d/tcp_resets.conf
@@ -33,7 +33,7 @@ component: Network
This can indicate a port scan, \
or that a service running on this host has crashed. \
Netdata will not send a clear notification for this alarm.
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# tcp resets this host receives
@@ -66,4 +66,4 @@ component: Network
info: average number of received TCP RESETS over the last 10 seconds. \
This can be an indication that a service this host needs has crashed. \
Netdata will not send a clear notification for this alarm.
- to: sysadmin
+ to: silent
diff --git a/health/health.d/udp_errors.conf b/health/health.d/udp_errors.conf
index 64f47dfa7..00593c583 100644
--- a/health/health.d/udp_errors.conf
+++ b/health/health.d/udp_errors.conf
@@ -17,7 +17,7 @@ component: Network
warn: $this > (($status >= $WARNING) ? (0) : (10))
info: average number of UDP receive buffer errors over the last minute
delay: up 1m down 60m multiplier 1.2 max 2h
- to: sysadmin
+ to: silent
# -----------------------------------------------------------------------------
# UDP send buffer errors
@@ -35,4 +35,4 @@ component: Network
warn: $this > (($status >= $WARNING) ? (0) : (10))
info: average number of UDP send buffer errors over the last minute
delay: up 1m down 60m multiplier 1.2 max 2h
- to: sysadmin
+ to: silent
diff --git a/health/health.d/windows.conf b/health/health.d/windows.conf
index 28a886386..9ef4c202f 100644
--- a/health/health.d/windows.conf
+++ b/health/health.d/windows.conf
@@ -15,7 +15,7 @@ component: CPU
crit: $this > (($status == $CRITICAL) ? (85) : (95))
delay: down 15m multiplier 1.5 max 1h
info: average CPU utilization over the last 10 minutes
- to: sysadmin
+ to: silent
## Memory
@@ -52,7 +52,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of inbound discarded packets for the network interface in the last 10 minutes
- to: sysadmin
+ to: silent
template: windows_outbound_packets_discarded
on: windows.net_nic_discarded
@@ -67,7 +67,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of outbound discarded packets for the network interface in the last 10 minutes
- to: sysadmin
+ to: silent
template: windows_inbound_packets_errors
on: windows.net_nic_errors
@@ -82,7 +82,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of inbound errors for the network interface in the last 10 minutes
- to: sysadmin
+ to: silent
template: windows_outbound_packets_errors
on: windows.net_nic_errors
@@ -97,7 +97,7 @@ component: Network
warn: $this >= 5
delay: down 1h multiplier 1.5 max 2h
info: number of outbound errors for the network interface in the last 10 minutes
- to: sysadmin
+ to: silent
## Disk
diff --git a/health/health.d/zfs.conf b/health/health.d/zfs.conf
index 7f8ea2793..40ec4ce8a 100644
--- a/health/health.d/zfs.conf
+++ b/health/health.d/zfs.conf
@@ -10,7 +10,7 @@ component: File system
warn: $this > 0
delay: down 1h multiplier 1.5 max 2h
info: number of times ZFS had to limit the ARC growth in the last 10 minutes
- to: sysadmin
+ to: silent
# ZFS pool state
diff --git a/health/health.h b/health/health.h
index 543bc56a1..7ec966ffe 100644
--- a/health/health.h
+++ b/health/health.h
@@ -70,6 +70,7 @@ ALARM_ENTRY* health_create_alarm_entry(
STRING *name,
STRING *chart,
STRING *chart_context,
+ STRING *chart_id,
STRING *family,
STRING *classification,
STRING *component,
diff --git a/health/health_log.c b/health/health_log.c
index 4cfbee608..933a452a6 100644
--- a/health/health_log.c
+++ b/health/health_log.c
@@ -20,6 +20,7 @@ inline ALARM_ENTRY* health_create_alarm_entry(
STRING *name,
STRING *chart,
STRING *chart_context,
+ STRING *chart_name,
STRING *family,
STRING *class,
STRING *component,
@@ -43,6 +44,7 @@ inline ALARM_ENTRY* health_create_alarm_entry(
ae->name = string_dup(name);
ae->chart = string_dup(chart);
ae->chart_context = string_dup(chart_context);
+ ae->chart_name = string_dup(chart_name);
uuid_copy(ae->config_hash_id, *((uuid_t *) config_hash_id));
diff --git a/health/notifications/alerta/metadata.yaml b/health/notifications/alerta/metadata.yaml
new file mode 100644
index 000000000..f815032b9
--- /dev/null
+++ b/health/notifications/alerta/metadata.yaml
@@ -0,0 +1,90 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-alerta'
+ meta:
+ name: 'Alerta'
+ link: 'https://alerta.io/'
+ categories:
+ - notify.agent
+ icon_filename: 'alerta.png'
+ keywords:
+ - Alerta
+ overview:
+ notification_description: |
+ The [Alerta](https://alerta.io/) monitoring system is a tool used to consolidate and de-duplicate alerts from multiple sources for quick ‘at-a-glance’ visualization. With just one system you can monitor alerts from many other monitoring tools on a single screen.
+ You can send Netdata alerts to Alerta to see alerts coming from many Netdata hosts or also from a multi-host Netdata configuration.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A working Alerta instance
+ - An Alerta API key (if authentication in Alerta is enabled)
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_ALERTA'
+ default_value: ''
+ description: "Set `SEND_ALERTA` to YES"
+ required: true
+ - name: 'ALERTA_WEBHOOK_URL'
+ default_value: ''
+ description: "set `ALERTA_WEBHOOK_URL` to the API url you defined when you installed the Alerta server."
+ required: true
+ - name: 'ALERTA_API_KEY'
+ default_value: ''
+ description: "Set `ALERTA_API_KEY` to your API key."
+ required: true
+ detailed_description: |
+ You will need an API key to send messages from any source, if Alerta is configured to use authentication (recommended). To create a new API key:
+ 1. Go to Configuration > API Keys.
+ 2. Create a new API key called "netdata" with `write:alerts` permission.
+ - name: 'DEFAULT_RECIPIENT_ALERTA'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_ALERTA` to the default recipient environment you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_CUSTOM'
+ default_value: ''
+ description: "Set different recipient environments per role, by editing `DEFAULT_RECIPIENT_CUSTOM` with the environment name of your choice"
+ required: false
+ detailed_description: |
+ The `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_alerta[sysadmin]="Systems"
+ role_recipients_alerta[domainadmin]="Domains"
+ role_recipients_alerta[dba]="Databases Systems"
+ role_recipients_alerta[webmaster]="Marketing Development"
+ role_recipients_alerta[proxyadmin]="Proxy"
+ role_recipients_alerta[sitemgr]="Sites"
+ ```
+
+ The values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # alerta (alerta.io) global notification options
+
+ SEND_ALERTA="YES"
+ ALERTA_WEBHOOK_URL="http://yourserver/alerta/api"
+ ALERTA_API_KEY="INSERT_YOUR_API_KEY_HERE"
+ DEFAULT_RECIPIENT_ALERTA="Production"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/awssns/metadata.yaml b/health/notifications/awssns/metadata.yaml
new file mode 100644
index 000000000..524a5f489
--- /dev/null
+++ b/health/notifications/awssns/metadata.yaml
@@ -0,0 +1,137 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-awssns'
+ meta:
+ name: 'AWS SNS'
+ link: 'https://aws.amazon.com/sns/'
+ categories:
+ - notify.agent
+ icon_filename: 'aws.svg'
+ keywords:
+ - AWS SNS
+ overview:
+ notification_description: |
+ As part of its AWS suite, Amazon provides a notification broker service called 'Simple Notification Service' (SNS). Amazon SNS works similarly to Netdata's own notification system, allowing to dispatch a single notification to multiple subscribers of different types. Among other things, SNS supports sending notifications to:
+ - Email addresses
+ - Mobile Phones via SMS
+ - HTTP or HTTPS web hooks
+ - AWS Lambda functions
+ - AWS SQS queues
+ - Mobile applications via push notifications
+ You can send notifications through Amazon SNS using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: |
+ - While Amazon SNS supports sending differently formatted messages for different delivery methods, Netdata does not currently support this functionality.
+ - For email notification support, we recommend using Netdata's email notifications, as it is has the following benefits:
+ - In most cases, it requires less configuration.
+ - Netdata's emails are nicely pre-formatted and support features like threading, which requires a lot of manual effort in SNS.
+ - It is less resource intensive and more cost-efficient than SNS.
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The [Amazon Web Services CLI tools](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (awscli).
+ - An actual home directory for the user you run Netdata as, instead of just using `/` as a home directory. The setup depends on the distribution, but `/var/lib/netdata` is the recommended directory. If you are using Netdata as a dedicated user, the permissions will already be correct.
+ - An Amazon SNS topic to send notifications to with one or more subscribers. The Getting Started section of the Amazon SNS documentation covers the basics of how to set this up. Make note of the Topic ARN when you create the topic.
+ - While not mandatory, it is highly recommended to create a dedicated IAM user on your account for Netdata to send notifications. This user needs to have programmatic access, and should only allow access to SNS. For an additional layer of security, you can create one for each system or group of systems.
+ - Terminal access to the Agent you wish to configure.
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'aws path'
+ default_value: ''
+ description: "The full path of the aws command. If empty, the system `$PATH` will be searched for it. If not found, Amazon SNS notifications will be silently disabled."
+ required: true
+ - name: 'SEND_AWSNS'
+ default_value: 'YES'
+ description: "Set `SEND_AWSNS` to YES"
+ required: true
+ - name: 'AWSSNS_MESSAGE_FORMAT'
+ default_value: '${status} on ${host} at ${date}: ${chart} ${value_string}'
+ description: "Set `AWSSNS_MESSAGE_FORMAT` to to the string that you want the alert to be sent into."
+ required: true
+ detailed_description: |
+ The supported variables are:
+
+ | Variable name | Description |
+ |:---------------------------:|:---------------------------------------------------------------------------------|
+ | `${alarm}` | Like "name = value units" |
+ | `${status_message}` | Like "needs attention", "recovered", "is critical" |
+ | `${severity}` | Like "Escalated to CRITICAL", "Recovered from WARNING" |
+ | `${raised_for}` | Like "(alarm was raised for 10 minutes)" |
+ | `${host}` | The host generated this event |
+ | `${url_host}` | Same as ${host} but URL encoded |
+ | `${unique_id}` | The unique id of this event |
+ | `${alarm_id}` | The unique id of the alarm that generated this event |
+ | `${event_id}` | The incremental id of the event, for this alarm id |
+ | `${when}` | The timestamp this event occurred |
+ | `${name}` | The name of the alarm, as given in netdata health.d entries |
+ | `${url_name}` | Same as ${name} but URL encoded |
+ | `${chart}` | The name of the chart (type.id) |
+ | `${url_chart}` | Same as ${chart} but URL encoded |
+ | `${family}` | The family of the chart |
+ | `${url_family}` | Same as ${family} but URL encoded |
+ | `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |
+ | `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |
+ | `${value}` | The current value of the alarm |
+ | `${old_value}` | The previous value of the alarm |
+ | `${src}` | The line number and file the alarm has been configured |
+ | `${duration}` | The duration in seconds of the previous alarm state |
+ | `${duration_txt}` | Same as ${duration} for humans |
+ | `${non_clear_duration}` | The total duration in seconds this is/was non-clear |
+ | `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |
+ | `${units}` | The units of the value |
+ | `${info}` | A short description of the alarm |
+ | `${value_string}` | Friendly value (with units) |
+ | `${old_value_string}` | Friendly old value (with units) |
+ | `${image}` | The URL of an image to represent the status of the alarm |
+ | `${color}` | A color in AABBCC format for the alarm |
+ | `${goto_url}` | The URL the user can click to see the netdata dashboard |
+ | `${calc_expression}` | The expression evaluated to provide the value for the alarm |
+ | `${calc_param_values}` | The value of the variables in the evaluated expression |
+ | `${total_warnings}` | The total number of alarms in WARNING state on the host |
+ | `${total_critical}` | The total number of alarms in CRITICAL state on the host |
+ - name: 'DEFAULT_RECIPIENT_AWSSNS'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_AWSSNS` to the Topic ARN you noted down upon creating the Topic."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ You can have different recipient Topics per **role**, by editing `DEFAULT_RECIPIENT_AWSSNS` with the Topic ARN you want, in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_awssns[sysadmin]="arn:aws:sns:us-east-2:123456789012:Systems"
+ role_recipients_awssns[domainadmin]="arn:aws:sns:us-east-2:123456789012:Domains"
+ role_recipients_awssns[dba]="arn:aws:sns:us-east-2:123456789012:Databases"
+ role_recipients_awssns[webmaster]="arn:aws:sns:us-east-2:123456789012:Development"
+ role_recipients_awssns[proxyadmin]="arn:aws:sns:us-east-2:123456789012:Proxy"
+ role_recipients_awssns[sitemgr]="arn:aws:sns:us-east-2:123456789012:Sites"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: 'An example working configuration would be:'
+ config: |
+ ```conf
+ #------------------------------------------------------------------------------
+ # Amazon SNS notifications
+
+ SEND_AWSSNS="YES"
+ AWSSNS_MESSAGE_FORMAT="${status} on ${host} at ${date}: ${chart} ${value_string}"
+ DEFAULT_RECIPIENT_AWSSNS="arn:aws:sns:us-east-2:123456789012:MyTopic"
+ ```
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/custom/metadata.yaml b/health/notifications/custom/metadata.yaml
new file mode 100644
index 000000000..c785fa2aa
--- /dev/null
+++ b/health/notifications/custom/metadata.yaml
@@ -0,0 +1,169 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-custom'
+ meta:
+ name: 'Custom'
+ link: ''
+ categories:
+ - notify.agent
+ icon_filename: 'custom.png'
+ keywords:
+ - custom
+ overview:
+ notification_description: |
+ Netdata Agent's alert notification feature allows you to send custom notifications to any endpoint you choose.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_CUSTOM'
+ default_value: 'YES'
+ description: "Set `SEND_CUSTOM` to YES"
+ required: true
+ - name: 'DEFAULT_RECIPIENT_CUSTOM'
+ default_value: ''
+ description: "This value is dependent on how you handle the `${to}` variable inside the `custom_sender()` function."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured. You can edit `DEFAULT_RECIPIENT_CUSTOM` with the variable you want, in the following entries at the bottom of the same file:
+ ```
+ role_recipients_custom[sysadmin]="systems"
+ role_recipients_custom[domainadmin]="domains"
+ role_recipients_custom[dba]="databases systems"
+ role_recipients_custom[webmaster]="marketing development"
+ role_recipients_custom[proxyadmin]="proxy-admin"
+ role_recipients_custom[sitemgr]="sites"
+ ```
+ - name: 'custom_sender()'
+ default_value: ''
+ description: "You can look at the other senders in `/usr/libexec/netdata/plugins.d/alarm-notify.sh` for examples of how to modify the function in this configuration file."
+ required: false
+ detailed_description: |
+ The following is a sample custom_sender() function in health_alarm_notify.conf, to send an SMS via an imaginary HTTPS endpoint to the SMS gateway:
+ ```
+ custom_sender() {
+ # example human readable SMS
+ local msg="${host} ${status_message}: ${alarm} ${raised_for}"
+
+ # limit it to 160 characters and encode it for use in a URL
+ urlencode "${msg:0:160}" >/dev/null; msg="${REPLY}"
+
+ # a space separated list of the recipients to send alarms to
+ to="${1}"
+
+ for phone in ${to}; do
+ httpcode=$(docurl -X POST \
+ --data-urlencode "From=XXX" \
+ --data-urlencode "To=${phone}" \
+ --data-urlencode "Body=${msg}" \
+ -u "${accountsid}:${accounttoken}" \
+ https://domain.website.com/)
+
+ if [ "${httpcode}" = "200" ]; then
+ info "sent custom notification ${msg} to ${phone}"
+ sent=$((sent + 1))
+ else
+ error "failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}."
+ fi
+ done
+ }
+ ```
+
+ The supported variables that you can use for the function's `msg` variable are:
+
+ | Variable name | Description |
+ |:---------------------------:|:---------------------------------------------------------------------------------|
+ | `${alarm}` | Like "name = value units" |
+ | `${status_message}` | Like "needs attention", "recovered", "is critical" |
+ | `${severity}` | Like "Escalated to CRITICAL", "Recovered from WARNING" |
+ | `${raised_for}` | Like "(alarm was raised for 10 minutes)" |
+ | `${host}` | The host generated this event |
+ | `${url_host}` | Same as ${host} but URL encoded |
+ | `${unique_id}` | The unique id of this event |
+ | `${alarm_id}` | The unique id of the alarm that generated this event |
+ | `${event_id}` | The incremental id of the event, for this alarm id |
+ | `${when}` | The timestamp this event occurred |
+ | `${name}` | The name of the alarm, as given in netdata health.d entries |
+ | `${url_name}` | Same as ${name} but URL encoded |
+ | `${chart}` | The name of the chart (type.id) |
+ | `${url_chart}` | Same as ${chart} but URL encoded |
+ | `${family}` | The family of the chart |
+ | `${url_family}` | Same as ${family} but URL encoded |
+ | `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |
+ | `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |
+ | `${value}` | The current value of the alarm |
+ | `${old_value}` | The previous value of the alarm |
+ | `${src}` | The line number and file the alarm has been configured |
+ | `${duration}` | The duration in seconds of the previous alarm state |
+ | `${duration_txt}` | Same as ${duration} for humans |
+ | `${non_clear_duration}` | The total duration in seconds this is/was non-clear |
+ | `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |
+ | `${units}` | The units of the value |
+ | `${info}` | A short description of the alarm |
+ | `${value_string}` | Friendly value (with units) |
+ | `${old_value_string}` | Friendly old value (with units) |
+ | `${image}` | The URL of an image to represent the status of the alarm |
+ | `${color}` | A color in AABBCC format for the alarm |
+ | `${goto_url}` | The URL the user can click to see the netdata dashboard |
+ | `${calc_expression}` | The expression evaluated to provide the value for the alarm |
+ | `${calc_param_values}` | The value of the variables in the evaluated expression |
+ | `${total_warnings}` | The total number of alarms in WARNING state on the host |
+ | `${total_critical}` | The total number of alarms in CRITICAL state on the host |
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # custom notifications
+
+ SEND_CUSTOM="YES"
+ DEFAULT_RECIPIENT_CUSTOM=""
+
+ # The custom_sender() is a custom function to do whatever you need to do
+ custom_sender() {
+ # example human readable SMS
+ local msg="${host} ${status_message}: ${alarm} ${raised_for}"
+
+ # limit it to 160 characters and encode it for use in a URL
+ urlencode "${msg:0:160}" >/dev/null; msg="${REPLY}"
+
+ # a space separated list of the recipients to send alarms to
+ to="${1}"
+
+ for phone in ${to}; do
+ httpcode=$(docurl -X POST \
+ --data-urlencode "From=XXX" \
+ --data-urlencode "To=${phone}" \
+ --data-urlencode "Body=${msg}" \
+ -u "${accountsid}:${accounttoken}" \
+ https://domain.website.com/)
+
+ if [ "${httpcode}" = "200" ]; then
+ info "sent custom notification ${msg} to ${phone}"
+ sent=$((sent + 1))
+ else
+ error "failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}."
+ fi
+ done
+ }
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/discord/metadata.yaml b/health/notifications/discord/metadata.yaml
new file mode 100644
index 000000000..a46a8ec98
--- /dev/null
+++ b/health/notifications/discord/metadata.yaml
@@ -0,0 +1,76 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-discord'
+ meta:
+ name: 'Discord'
+ link: 'https://discord.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'discord.png'
+ keywords:
+ - Discord
+ overview:
+ notification_description: |
+ Send notifications to Discord using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The incoming webhook URL as given by Discord. Create a webhook by following the official [Discord documentation](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
+ - One or more Discord channels to post the messages to
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_DISCORD'
+ default_value: 'YES'
+ description: "Set `SEND_DISCORD` to YES"
+ required: true
+ - name: 'DISCORD_WEBHOOK_URL'
+ default_value: ''
+ description: "set `DISCORD_WEBHOOK_URL` to your webhook URL."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_DISCORD'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_DISCORD` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`. "
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+ You can then have different channels per role, by editing `DEFAULT_RECIPIENT_DISCORD` with the channel you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_discord[sysadmin]="systems"
+ role_recipients_discord[domainadmin]="domains"
+ role_recipients_discord[dba]="databases systems"
+ role_recipients_discord[webmaster]="marketing development"
+ role_recipients_discord[proxyadmin]="proxy-admin"
+ role_recipients_discord[sitemgr]="sites"
+ ```
+
+ The values you provide should already exist as Discord channels in your server.
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # discord (discordapp.com) global notification options
+
+ SEND_DISCORD="YES"
+ DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ DEFAULT_RECIPIENT_DISCORD="alerts"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/dynatrace/metadata.yaml b/health/notifications/dynatrace/metadata.yaml
new file mode 100644
index 000000000..a88c766fd
--- /dev/null
+++ b/health/notifications/dynatrace/metadata.yaml
@@ -0,0 +1,92 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-dynatrace'
+ meta:
+ name: 'Dynatrace'
+ link: 'https://dynatrace.com'
+ categories:
+ - notify.agent
+ icon_filename: 'dynatrace.svg'
+ keywords:
+ - Dynatrace
+ overview:
+ notification_description: |
+ Dynatrace allows you to receive notifications using their Events REST API. See the [Dynatrace documentation](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event) about POSTing an event in the Events API for more details.
+ You can send notifications to Dynatrace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A Dynatrace Server. You can use the same on all your Netdata servers but make sure the server is network visible from your Netdata hosts. The Dynatrace server should be with protocol prefixed (http:// or https://), for example: https://monitor.example.com.
+ - An API Token. Generate a secure access API token that enables access to your Dynatrace monitoring data via the REST-based API. See [Dynatrace API - Authentication](https://www.dynatrace.com/support/help/extend-dynatrace/dynatrace-api/basics/dynatrace-api-authentication/) for more details.
+ - An API Space. This is the URL part of the page you have access in order to generate the API Token. For example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.
+ - A Server Tag. To generate one on your Dynatrace Server, go to Settings --> Tags --> Manually applied tags and create the Tag. The Netdata alarm is sent as a Dynatrace Event to be correlated with all those hosts tagged with this Tag you have created.
+ - Terminal access to the Agent you wish to configure
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_DYNATRACE'
+ default_value: 'YES'
+ description: "Set `SEND_DYNATRACE` to YES"
+ required: true
+ - name: 'DYNATRACE_SERVER'
+ default_value: ''
+ description: "Set `DYNATRACE_SERVER` to the Dynatrace server with the protocol prefix, for example `https://monitor.example.com`."
+ required: true
+ - name: 'DYNATRACE_TOKEN'
+ default_value: ''
+ description: "Set `DYNATRACE_TOKEN` to your Dynatrace API authentication token"
+ required: true
+ - name: 'DYNATRACE_SPACE'
+ default_value: ''
+ description: "Set `DYNATRACE_SPACE` to the API Space, it is the URL part of the page you have access in order to generate the API Token."
+ required: true
+ detailed_description: |
+ For example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.
+ - name: 'DYNATRACE_TAG_VALUE'
+ default_value: ''
+ description: "Set `DYNATRACE_TAG_VALUE` to your Dynatrace Server Tag."
+ required: true
+ - name: 'DYNATRACE_ANNOTATION_TYPE'
+ default_value: 'Netdata Alarm'
+ description: "`DYNATRACE_ANNOTATION_TYPE` can be left to its default value Netdata Alarm, but you can change it to better fit your needs."
+ required: false
+ - name: 'DYNATRACE_EVENT'
+ default_value: 'Netdata Alarm'
+ description: "Set `DYNATRACE_EVENT` to the Dynatrace eventType you want."
+ required: false
+ detailed_description: |
+ `AVAILABILITY_EVENT`, `CUSTOM_ALERT`, `CUSTOM_ANNOTATION`, `CUSTOM_CONFIGURATION`, `CUSTOM_DEPLOYMENT`, `CUSTOM_INFO`, `ERROR_EVENT`,
+ `MARKED_FOR_TERMINATION`, `PERFORMANCE_EVENT`, `RESOURCE_CONTENTION_EVENT`.
+ You can read more [here](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event#request-body-objects).
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Dynatrace global notification options
+
+ SEND_DYNATRACE="YES"
+ DYNATRACE_SERVER="https://monitor.example.com"
+ DYNATRACE_TOKEN="XXXXXXX"
+ DYNATRACE_SPACE="2a93fe0e-4cd5-469a-9d0d-1a064235cfce"
+ DYNATRACE_TAG_VALUE="SERVERTAG"
+ DYNATRACE_ANNOTATION_TYPE="Netdata Alert"
+ DYNATRACE_EVENT="AVAILABILITY_EVENT"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/email/metadata.yaml b/health/notifications/email/metadata.yaml
new file mode 100644
index 000000000..f0d4a62a9
--- /dev/null
+++ b/health/notifications/email/metadata.yaml
@@ -0,0 +1,73 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-email'
+ meta:
+ name: 'Email'
+ link: ''
+ categories:
+ - notify.agent
+ icon_filename: 'email.png'
+ keywords:
+ - email
+ overview:
+ notification_description: |
+ Send notifications via Email using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A working sendmail command is required for email alerts to work. Almost all MTAs provide a sendmail interface. Netdata sends all emails as user netdata, so make sure your sendmail works for local users.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'EMAIL_SENDER'
+ default_value: 'netdata'
+ description: "You can change `EMAIL_SENDER` to the email address sending the notifications."
+ required: false
+ - name: 'SEND_EMAIL'
+ default_value: 'YES'
+ description: "Set `SEND_EMAIL` to YES"
+ required: true
+ - name: 'DEFAULT_RECIPIENT_EMAIL'
+ default_value: 'root'
+ description: "Set `DEFAULT_RECIPIENT_EMAIL` to the email address you want the email to be sent by default. You can define multiple email addresses like this: `alarms@example.com` `systems@example.com`."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+ The `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_email[sysadmin]="systems@example.com"
+ role_recipients_email[domainadmin]="domains@example.com"
+ role_recipients_email[dba]="databases@example.com systems@example.com"
+ role_recipients_email[webmaster]="marketing@example.com development@example.com"
+ role_recipients_email[proxyadmin]="proxy-admin@example.com"
+ role_recipients_email[sitemgr]="sites@example.com"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # email global notification options
+
+ EMAIL_SENDER="example@domain.com"
+ SEND_EMAIL="YES"
+ DEFAULT_RECIPIENT_EMAIL="recipient@example.com"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/flock/metadata.yaml b/health/notifications/flock/metadata.yaml
new file mode 100644
index 000000000..62e7f4995
--- /dev/null
+++ b/health/notifications/flock/metadata.yaml
@@ -0,0 +1,72 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-flock'
+ meta:
+ name: 'Flock'
+ link: 'https://support.flock.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'flock.png'
+ keywords:
+ - Flock
+ overview:
+ notification_description: |
+ Send notifications to Flock using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The incoming webhook URL as given by flock.com. You can use the same on all your Netdata servers (or you can have multiple if you like). Read more about flock webhooks and how to get one [here](https://admin.flock.com/webhooks).
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_FLOCK'
+ default_value: 'YES'
+ description: "Set `SEND_FLOCK` to YES"
+ required: true
+ - name: 'FLOCK_WEBHOOK_URL'
+ default_value: ''
+ description: "set `FLOCK_WEBHOOK_URL` to your webhook URL."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_FLOCK'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_FLOCK` to the Flock channel you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured."
+ required: true
+ detailed_description: |
+ You can have different channels per role, by editing DEFAULT_RECIPIENT_FLOCK with the channel you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_flock[sysadmin]="systems"
+ role_recipients_flock[domainadmin]="domains"
+ role_recipients_flock[dba]="databases systems"
+ role_recipients_flock[webmaster]="marketing development"
+ role_recipients_flock[proxyadmin]="proxy-admin"
+ role_recipients_flock[sitemgr]="sites"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # flock (flock.com) global notification options
+
+ SEND_FLOCK="YES"
+ FLOCK_WEBHOOK_URL="https://api.flock.com/hooks/sendMessage/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ DEFAULT_RECIPIENT_FLOCK="alarms"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/gotify/metadata.yaml b/health/notifications/gotify/metadata.yaml
new file mode 100644
index 000000000..4552de1c4
--- /dev/null
+++ b/health/notifications/gotify/metadata.yaml
@@ -0,0 +1,60 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-gotify'
+ meta:
+ name: 'Gotify'
+ link: 'https://gotify.net/'
+ categories:
+ - notify.agent
+ icon_filename: 'gotify.png'
+ keywords:
+ - gotify
+ overview:
+ notification_description: |
+ [Gotify](https://gotify.net/) is a self-hosted push notification service created for sending and receiving messages in real time.
+ You can send alerts to your Gotify instance using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - An application token. You can generate a new token in the Gotify Web UI.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_GOTIFY'
+ default_value: 'YES'
+ description: "Set `SEND_GOTIFY` to YES"
+ required: true
+ - name: 'GOTIFY_APP_TOKEN'
+ default_value: ''
+ description: "set `GOTIFY_APP_TOKEN` to the app token you generated."
+ required: true
+ - name: 'GOTIFY_APP_URL'
+ default_value: ''
+ description: "Set `GOTIFY_APP_URL` to point to your Gotify instance, for example `https://push.example.domain/`"
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ SEND_GOTIFY="YES"
+ GOTIFY_APP_TOKEN="XXXXXXXXXXXXXXX"
+ GOTIFY_APP_URL="https://push.example.domain/"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/irc/metadata.yaml b/health/notifications/irc/metadata.yaml
new file mode 100644
index 000000000..aa2593f91
--- /dev/null
+++ b/health/notifications/irc/metadata.yaml
@@ -0,0 +1,100 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-irc'
+ meta:
+ name: 'IRC'
+ link: ''
+ categories:
+ - notify.agent
+ icon_filename: 'irc.png'
+ keywords:
+ - IRC
+ overview:
+ notification_description: |
+ Send notifications to IRC using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The `nc` utility. You can set the path to it, or Netdata will search for it in your system `$PATH`.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'nc path'
+ default_value: ''
+ description: "Set the path for nc, otherwise Netdata will search for it in your system $PATH"
+ required: true
+ detailed_description: |
+ ```sh
+ #------------------------------------------------------------------------------
+ # external commands
+ #
+ # The full path of the nc command.
+ # If empty, the system $PATH will be searched for it.
+ # If not found, irc notifications will be silently disabled.
+ nc="/usr/bin/nc"
+ ```
+ - name: 'SEND_IRC'
+ default_value: 'YES'
+ description: "Set `SEND_IRC` YES."
+ required: true
+ - name: 'IRC_NETWORK'
+ default_value: ''
+ description: "Set `IRC_NETWORK` to the IRC network which your preferred channels belong to."
+ required: true
+ - name: 'IRC_PORT '
+ default_value: ''
+ description: "Set `IRC_PORT` to the IRC port to which a connection will occur."
+ required: false
+ - name: 'IRC_NICKNAME'
+ default_value: ''
+ description: "Set `IRC_NICKNAME` to the IRC nickname which is required to send the notification. It must not be an already registered name as the connection's MODE is defined as a guest."
+ required: true
+ - name: 'IRC_REALNAME'
+ default_value: ''
+ description: "Set `IRC_REALNAME` to the IRC realname which is required in order to make the connection."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_IRC'
+ default_value: ''
+ description: "You can have different channels per role, by editing `DEFAULT_RECIPIENT_IRC` with the channel you want"
+ required: true
+ detailed_description: |
+ The `DEFAULT_RECIPIENT_IRC` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_irc[sysadmin]="#systems"
+ role_recipients_irc[domainadmin]="#domains"
+ role_recipients_irc[dba]="#databases #systems"
+ role_recipients_irc[webmaster]="#marketing #development"
+ role_recipients_irc[proxyadmin]="#proxy-admin"
+ role_recipients_irc[sitemgr]="#sites"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # irc notification options
+ #
+ SEND_IRC="YES"
+ DEFAULT_RECIPIENT_IRC="#system-alarms"
+ IRC_NETWORK="irc.freenode.net"
+ IRC_NICKNAME="netdata-alarm-user"
+ IRC_REALNAME="netdata-user"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/kavenegar/metadata.yaml b/health/notifications/kavenegar/metadata.yaml
new file mode 100644
index 000000000..559dbac09
--- /dev/null
+++ b/health/notifications/kavenegar/metadata.yaml
@@ -0,0 +1,82 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-kavenegar'
+ meta:
+ name: 'Kavenegar'
+ link: 'https://kavenegar.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'kavenegar.png'
+ keywords:
+ - Kavenegar
+ overview:
+ notification_description: |
+ [Kavenegar](https://kavenegar.com/) as service for software developers, based in Iran, provides send and receive SMS, calling voice by using its APIs.
+ You can send notifications to Kavenegar using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The APIKEY and Sender from http://panel.kavenegar.com/client/setting/account
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_KAVENEGAR'
+ default_value: 'YES'
+ description: "Set `SEND_KAVENEGAR` to YES"
+ required: true
+ - name: 'KAVENEGAR_API_KEY'
+ default_value: ''
+ description: "Set `KAVENEGAR_API_KEY` to your API key."
+ required: true
+ - name: 'KAVENEGAR_SENDER'
+ default_value: ''
+ description: "Set `KAVENEGAR_SENDER` to the value of your Sender."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_KAVENEGAR'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_KAVENEGAR` to the SMS recipient you want the alert notifications to be sent to. You can define multiple recipients like this: 09155555555 09177777777."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if lest unconfigured.
+
+ You can then have different SMS recipients per role, by editing `DEFAULT_RECIPIENT_KAVENEGAR` with the SMS recipients you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_kavenegar[sysadmin]="09100000000"
+ role_recipients_kavenegar[domainadmin]="09111111111"
+ role_recipients_kavenegar[dba]="0922222222"
+ role_recipients_kavenegar[webmaster]="0933333333"
+ role_recipients_kavenegar[proxyadmin]="0944444444"
+ role_recipients_kavenegar[sitemgr]="0955555555"
+ ```
+
+ The values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Kavenegar (Kavenegar.com) SMS options
+
+ SEND_KAVENEGAR="YES"
+ KAVENEGAR_API_KEY="XXXXXXXXXXXX"
+ KAVENEGAR_SENDER="YYYYYYYY"
+ DEFAULT_RECIPIENT_KAVENEGAR="0912345678"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/matrix/metadata.yaml b/health/notifications/matrix/metadata.yaml
new file mode 100644
index 000000000..17135aa3a
--- /dev/null
+++ b/health/notifications/matrix/metadata.yaml
@@ -0,0 +1,91 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-matrix'
+ meta:
+ name: 'Matrix'
+ link: 'https://spec.matrix.org/unstable/push-gateway-api/'
+ categories:
+ - notify.agent
+ icon_filename: 'matrix.svg'
+ keywords:
+ - Matrix
+ overview:
+ notification_description: |
+ Send notifications to Matrix network rooms using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The url of the homeserver (`https://homeserver:port`).
+ - Credentials for connecting to the homeserver, in the form of a valid access token for your account (or for a dedicated notification account). These tokens usually don't expire.
+ - The room ids that you want to sent the notification to.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_MATRIX'
+ default_value: 'YES'
+ description: "Set `SEND_MATRIX` to YES"
+ required: true
+ - name: 'MATRIX_HOMESERVER'
+ default_value: ''
+ description: "set `MATRIX_HOMESERVER` to the URL of the Matrix homeserver."
+ required: true
+ - name: 'MATRIX_ACCESSTOKEN'
+ default_value: ''
+ description: "Set `MATRIX_ACCESSTOKEN` to the access token from your Matrix account."
+ required: true
+ detailed_description: |
+ To obtain the access token, you can use the following curl command:
+ ```
+ curl -XPOST -d '{"type":"m.login.password", "user":"example", "password":"wordpass"}' "https://homeserver:8448/_matrix/client/r0/login"
+ ```
+ - name: 'DEFAULT_RECIPIENT_MATRIX'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_MATRIX` to the rooms you want the alert notifications to be sent to. The format is `!roomid:homeservername`."
+ required: true
+ detailed_description: |
+ The room ids are unique identifiers and can be obtained from the room settings in a Matrix client (e.g. Riot).
+
+ You can define multiple rooms like this: `!roomid1:homeservername` `!roomid2:homeservername`.
+
+ All roles will default to this variable if left unconfigured.
+
+ You can have different rooms per role, by editing `DEFAULT_RECIPIENT_MATRIX` with the `!roomid:homeservername` you want, in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_matrix[sysadmin]="!roomid1:homeservername"
+ role_recipients_matrix[domainadmin]="!roomid2:homeservername"
+ role_recipients_matrix[dba]="!roomid3:homeservername"
+ role_recipients_matrix[webmaster]="!roomid4:homeservername"
+ role_recipients_matrix[proxyadmin]="!roomid5:homeservername"
+ role_recipients_matrix[sitemgr]="!roomid6:homeservername"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Matrix notifications
+
+ SEND_MATRIX="YES"
+ MATRIX_HOMESERVER="https://matrix.org:8448"
+ MATRIX_ACCESSTOKEN="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ DEFAULT_RECIPIENT_MATRIX="!XXXXXXXXXXXX:matrix.org"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/messagebird/metadata.yaml b/health/notifications/messagebird/metadata.yaml
new file mode 100644
index 000000000..a97cdc712
--- /dev/null
+++ b/health/notifications/messagebird/metadata.yaml
@@ -0,0 +1,79 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-messagebird'
+ meta:
+ name: 'MessageBird'
+ link: 'https://messagebird.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'messagebird.svg'
+ keywords:
+ - MessageBird
+ overview:
+ notification_description: |
+ Send notifications to MessageBird using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - An access key under 'API ACCESS (REST)' (you will want a live key), you can read more [here](https://developers.messagebird.com/quickstarts/sms/test-credits-api-keys/).
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_MESSAGEBIRD'
+ default_value: 'YES'
+ description: "Set `SEND_MESSAGEBIRD` to YES"
+ required: true
+ - name: 'MESSAGEBIRD_ACCESS_KEY'
+ default_value: ''
+ description: "Set `MESSAGEBIRD_ACCESS_KEY` to your API key."
+ required: true
+ - name: 'MESSAGEBIRD_NUMBER'
+ default_value: ''
+ description: "Set `MESSAGEBIRD_NUMBER` to the MessageBird number you want to use for the alert."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_MESSAGEBIRD'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_MESSAGEBIRD` to the number you want the alert notification to be sent as an SMS. You can define multiple recipients like this: +15555555555 +17777777777."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ You can then have different recipients per role, by editing `DEFAULT_RECIPIENT_MESSAGEBIRD` with the number you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_messagebird[sysadmin]="+15555555555"
+ role_recipients_messagebird[domainadmin]="+15555555556"
+ role_recipients_messagebird[dba]="+15555555557"
+ role_recipients_messagebird[webmaster]="+15555555558"
+ role_recipients_messagebird[proxyadmin]="+15555555559"
+ role_recipients_messagebird[sitemgr]="+15555555550"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Messagebird (messagebird.com) SMS options
+
+ SEND_MESSAGEBIRD="YES"
+ MESSAGEBIRD_ACCESS_KEY="XXXXXXXX"
+ MESSAGEBIRD_NUMBER="XXXXXXX"
+ DEFAULT_RECIPIENT_MESSAGEBIRD="+15555555555"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/msteams/metadata.yaml b/health/notifications/msteams/metadata.yaml
new file mode 100644
index 000000000..72de507a4
--- /dev/null
+++ b/health/notifications/msteams/metadata.yaml
@@ -0,0 +1,79 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-teams'
+ meta:
+ name: 'Microsoft Teams'
+ link: 'https://www.microsoft.com/en-us/microsoft-teams/log-in'
+ categories:
+ - notify.agent
+ icon_filename: 'msteams.svg'
+ keywords:
+ - Microsoft
+ - Teams
+ - MS teams
+ overview:
+ notification_description: |
+ You can send Netdata alerts to Microsoft Teams using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The incoming webhook URL as given by Microsoft Teams. You can use the same on all your Netdata servers (or you can have multiple if you like).
+ - One or more channels to post the messages to
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_MSTEAMS'
+ default_value: 'YES'
+ description: "Set `SEND_MSTEAMS` to YES"
+ required: true
+ - name: 'MSTEAMS_WEBHOOK_URL'
+ default_value: ''
+ description: "set `MSTEAMS_WEBHOOK_URL` to the incoming webhook URL as given by Microsoft Teams."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_MSTEAMS'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_MSTEAMS` to the encoded Microsoft Teams channel name you want the alert notifications to be sent to."
+ required: true
+ detailed_description: |
+ In Microsoft Teams the channel name is encoded in the URI after `/IncomingWebhook/`. You can define multiple channels like this: `CHANNEL1` `CHANNEL2`.
+
+ All roles will default to this variable if left unconfigured.
+
+ You can have different channels per role, by editing `DEFAULT_RECIPIENT_MSTEAMS` with the channel you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_msteams[sysadmin]="CHANNEL1"
+ role_recipients_msteams[domainadmin]="CHANNEL2"
+ role_recipients_msteams[dba]="databases CHANNEL3"
+ role_recipients_msteams[webmaster]="CHANNEL4"
+ role_recipients_msteams[proxyadmin]="CHANNEL5"
+ role_recipients_msteams[sitemgr]="CHANNEL6"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Microsoft Teams (office.com) global notification options
+
+ SEND_MSTEAMS="YES"
+ MSTEAMS_WEBHOOK_URL="https://outlook.office.com/webhook/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX@XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/IncomingWebhook/CHANNEL/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
+ DEFAULT_RECIPIENT_MSTEAMS="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/ntfy/metadata.yaml b/health/notifications/ntfy/metadata.yaml
new file mode 100644
index 000000000..cde57fd4d
--- /dev/null
+++ b/health/notifications/ntfy/metadata.yaml
@@ -0,0 +1,70 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-ntfy'
+ meta:
+ name: 'ntfy'
+ link: 'https://ntfy.sh/'
+ categories:
+ - notify.agent
+ icon_filename: 'ntfy.svg'
+ keywords:
+ - ntfy
+ overview:
+ notification_description: |
+ [ntfy](https://ntfy.sh/) (pronounce: notify) is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, entirely without signup, cost or setup. It's also [open source](https://github.com/binwiederhier/ntfy) if you want to run your own server.
+ You can send alerts to an ntfy server using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - (Optional) A [self-hosted ntfy server](https://docs.ntfy.sh/faq/#can-i-self-host-it), in case you don't want to use https://ntfy.sh
+ - A new [topic](https://ntfy.sh/#subscribe) for the notifications to be published to
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_NTFY'
+ default_value: 'YES'
+ description: "Set `SEND_NTFY` to YES"
+ required: true
+ - name: 'DEFAULT_RECIPIENT_NTFY'
+ default_value: ''
+ description: "URL formed by the server-topic combination you want the alert notifications to be sent to. Unless hosting your own server, the server should always be set to https://ntfy.sh."
+ required: true
+ detailed_description: |
+ You can define multiple recipient URLs like this: `https://SERVER1/TOPIC1` `https://SERVER2/TOPIC2`
+
+ All roles will default to this variable if left unconfigured.
+
+ You can then have different servers and/or topics per role, by editing DEFAULT_RECIPIENT_NTFY with the server-topic combination you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_ntfy[sysadmin]="https://SERVER1/TOPIC1"
+ role_recipients_ntfy[domainadmin]="https://SERVER2/TOPIC2"
+ role_recipients_ntfy[dba]="https://SERVER3/TOPIC3"
+ role_recipients_ntfy[webmaster]="https://SERVER4/TOPIC4"
+ role_recipients_ntfy[proxyadmin]="https://SERVER5/TOPIC5"
+ role_recipients_ntfy[sitemgr]="https://SERVER6/TOPIC6"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ SEND_NTFY="YES"
+ DEFAULT_RECIPIENT_NTFY="https://ntfy.sh/netdata-X7seHg7d3Tw9zGOk https://ntfy.sh/netdata-oIPm4IK1IlUtlA30"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/opsgenie/metadata.yaml b/health/notifications/opsgenie/metadata.yaml
new file mode 100644
index 000000000..78bd8c2bd
--- /dev/null
+++ b/health/notifications/opsgenie/metadata.yaml
@@ -0,0 +1,60 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-opsgenie'
+ meta:
+ name: 'OpsGenie'
+ link: 'https://www.atlassian.com/software/opsgenie'
+ categories:
+ - notify.agent
+ icon_filename: 'opsgenie.png'
+ keywords:
+ - OpsGenie
+ overview:
+ notification_description: |
+ Opsgenie is an alerting and incident response tool. It is designed to group and filter alarms, build custom routing rules for on-call teams, and correlate deployments and commits to incidents.
+ You can send notifications to Opsgenie using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - An Opsgenie integration. You can create an [integration](https://docs.opsgenie.com/docs/api-integration) in the [Opsgenie](https://www.atlassian.com/software/opsgenie) dashboard.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_OPSGENIE'
+ default_value: 'YES'
+ description: "Set `SEND_OPSGENIE` to YES"
+ required: true
+ - name: 'OPSGENIE_API_KEY'
+ default_value: ''
+ description: "Set `OPSGENIE_API_KEY` to your API key."
+ required: true
+ - name: 'OPSGENIE_API_URL'
+ default_value: 'https://api.opsgenie.com'
+ description: "Set `OPSGENIE_API_URL` to the corresponding URL if required, for example there are region-specific API URLs such as `https://eu.api.opsgenie.com`."
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ SEND_OPSGENIE="YES"
+ OPSGENIE_API_KEY="11111111-2222-3333-4444-555555555555"
+ OPSGENIE_API_URL=""
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/pagerduty/metadata.yaml b/health/notifications/pagerduty/metadata.yaml
new file mode 100644
index 000000000..6fc1d640e
--- /dev/null
+++ b/health/notifications/pagerduty/metadata.yaml
@@ -0,0 +1,73 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-pagerduty'
+ meta:
+ name: 'PagerDuty'
+ link: 'https://www.pagerduty.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'pagerduty.png'
+ keywords:
+ - PagerDuty
+ overview:
+ notification_description: |
+ PagerDuty is an enterprise incident resolution service that integrates with ITOps and DevOps monitoring stacks to improve operational reliability and agility. From enriching and aggregating events to correlating them into incidents, PagerDuty streamlines the incident management process by reducing alert noise and resolution times.
+ You can send notifications to PagerDuty using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - An installation of the [PagerDuty](https://www.pagerduty.com/docs/guides/agent-install-guide/) agent on the node running the Netdata Agent
+ - A PagerDuty Generic API service using either the `Events API v2` or `Events API v1`
+ - [Add a new service](https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations) to PagerDuty. Click Use our API directly and select either `Events API v2` or `Events API v1`. Once you finish creating the service, click on the Integrations tab to find your Integration Key.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_PD'
+ default_value: 'YES'
+ description: "Set `SEND_PD` to YES"
+ required: true
+ - name: 'DEFAULT_RECIPIENT_PD'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_PD` to the PagerDuty service key you want the alert notifications to be sent to. You can define multiple service keys like this: `pd_service_key_1` `pd_service_key_2`."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_PD` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_pd[sysadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa"
+ role_recipients_pd[domainadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb"
+ role_recipients_pd[dba]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc"
+ role_recipients_pd[webmaster]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd"
+ role_recipients_pd[proxyadmin]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe"
+ role_recipients_pd[sitemgr]="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # pagerduty.com notification options
+
+ SEND_PD="YES"
+ DEFAULT_RECIPIENT_PD="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
+ USE_PD_VERSION="2"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/prowl/metadata.yaml b/health/notifications/prowl/metadata.yaml
new file mode 100644
index 000000000..b3f0e0a1e
--- /dev/null
+++ b/health/notifications/prowl/metadata.yaml
@@ -0,0 +1,71 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-prowl'
+ meta:
+ name: 'Prowl'
+ link: 'https://www.prowlapp.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'prowl.png'
+ keywords:
+ - Prowl
+ overview:
+ notification_description: |
+ Send notifications to Prowl using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: |
+ - Because of how Netdata integrates with Prowl, there is a hard limit of at most 1000 notifications per hour (starting from the first notification sent). Any alerts beyond the first thousand in an hour will be dropped.
+ - Warning messages will be sent with the 'High' priority, critical messages will be sent with the 'Emergency' priority, and all other messages will be sent with the normal priority. Opening the notification's associated URL will take you to the Netdata dashboard of the system that issued the alert, directly to the chart that it triggered on.
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A Prowl API key, which can be requested through the Prowl website after registering
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_PROWL'
+ default_value: 'YES'
+ description: "Set `SEND_PROWL` to YES"
+ required: true
+ - name: 'DEFAULT_RECIPIENT_PROWL'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_PROWL` to the Prowl API key you want the alert notifications to be sent to. You can define multiple API keys like this: `APIKEY1`, `APIKEY2`."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_PROWL` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_prowl[sysadmin]="AAAAAAAA"
+ role_recipients_prowl[domainadmin]="BBBBBBBBB"
+ role_recipients_prowl[dba]="CCCCCCCCC"
+ role_recipients_prowl[webmaster]="DDDDDDDDDD"
+ role_recipients_prowl[proxyadmin]="EEEEEEEEEE"
+ role_recipients_prowl[sitemgr]="FFFFFFFFFF"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # iOS Push Notifications
+
+ SEND_PROWL="YES"
+ DEFAULT_RECIPIENT_PROWL="XXXXXXXXXX"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/pushbullet/metadata.yaml b/health/notifications/pushbullet/metadata.yaml
new file mode 100644
index 000000000..430033cca
--- /dev/null
+++ b/health/notifications/pushbullet/metadata.yaml
@@ -0,0 +1,76 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-pushbullet'
+ meta:
+ name: 'Pushbullet'
+ link: 'https://www.pushbullet.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'pushbullet.png'
+ keywords:
+ - Pushbullet
+ overview:
+ notification_description: |
+ Send notifications to Pushbullet using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A Pushbullet access token that can be created in your [account settings](https://www.pushbullet.com/#settings/account).
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'Send_PUSHBULLET'
+ default_value: 'YES'
+ description: "Set `Send_PUSHBULLET` to YES"
+ required: true
+ - name: 'PUSHBULLET_ACCESS_TOKEN'
+ default_value: ''
+ description: "set `PUSHBULLET_ACCESS_TOKEN` to the access token you generated."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_PUSHBULLET'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_PUSHBULLET` to the email (e.g. `example@domain.com`) or the channel tag (e.g. `#channel`) you want the alert notifications to be sent to."
+ required: true
+ detailed_description: |
+ You can define multiple entries like this: user1@email.com user2@email.com.
+
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_PUSHBULLET` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_pushbullet[sysadmin]="user1@email.com"
+ role_recipients_pushbullet[domainadmin]="user2@mail.com"
+ role_recipients_pushbullet[dba]="#channel1"
+ role_recipients_pushbullet[webmaster]="#channel2"
+ role_recipients_pushbullet[proxyadmin]="user3@mail.com"
+ role_recipients_pushbullet[sitemgr]="user4@mail.com"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # pushbullet (pushbullet.com) push notification options
+
+ SEND_PUSHBULLET="YES"
+ PUSHBULLET_ACCESS_TOKEN="XXXXXXXXX"
+ DEFAULT_RECIPIENT_PUSHBULLET="admin1@example.com admin3@somemail.com #examplechanneltag #anotherchanneltag"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/pushover/metadata.yaml b/health/notifications/pushover/metadata.yaml
new file mode 100644
index 000000000..9af729ea8
--- /dev/null
+++ b/health/notifications/pushover/metadata.yaml
@@ -0,0 +1,78 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-pushover'
+ meta:
+ name: 'PushOver'
+ link: 'https://pushover.net/'
+ categories:
+ - notify.agent
+ icon_filename: 'pushover.png'
+ keywords:
+ - PushOver
+ overview:
+ notification_description: |
+ Send notification to Pushover using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ - Netdata will send warning messages with priority 0 and critical messages with priority 1.
+ - Pushover allows you to select do-not-disturb hours. The way this is configured, critical notifications will ring and vibrate your phone, even during the do-not-disturb-hours.
+ - All other notifications will be delivered silently.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - An Application token. You can use the same on all your Netdata servers.
+ - A User token for each user you are going to send notifications to. This is the actual recipient of the notification.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_PUSHOVER'
+ default_value: 'YES'
+ description: "Set `SEND_PUSHOVER` to YES"
+ required: true
+ - name: 'PUSHOVER_WEBHOOK_URL'
+ default_value: ''
+ description: "set `PUSHOVER_WEBHOOK_URL` to your Pushover Application token."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_PUSHOVER'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_PUSHOVER` the Pushover User token you want the alert notifications to be sent to. You can define multiple User tokens like this: `USERTOKEN1` `USERTOKEN2`."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_PUSHOVER` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_pushover[sysadmin]="USERTOKEN1"
+ role_recipients_pushover[domainadmin]="USERTOKEN2"
+ role_recipients_pushover[dba]="USERTOKEN3 USERTOKEN4"
+ role_recipients_pushover[webmaster]="USERTOKEN5"
+ role_recipients_pushover[proxyadmin]="USERTOKEN6"
+ role_recipients_pushover[sitemgr]="USERTOKEN7"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # pushover (pushover.net) global notification options
+
+ SEND_PUSHOVER="YES"
+ PUSHOVER_APP_TOKEN="XXXXXXXXX"
+ DEFAULT_RECIPIENT_PUSHOVER="USERTOKEN"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/rocketchat/metadata.yaml b/health/notifications/rocketchat/metadata.yaml
new file mode 100644
index 000000000..f644b93e1
--- /dev/null
+++ b/health/notifications/rocketchat/metadata.yaml
@@ -0,0 +1,75 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-rocketchat'
+ meta:
+ name: 'RocketChat'
+ link: 'https://rocket.chat/'
+ categories:
+ - notify.agent
+ icon_filename: 'rocketchat.png'
+ keywords:
+ - RocketChat
+ overview:
+ notification_description: |
+ Send notifications to Rocket.Chat using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - The incoming webhook URL as given by RocketChat. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).
+ - One or more channels to post the messages to
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_ROCKETCHAT'
+ default_value: 'YES'
+ description: "Set `SEND_ROCKETCHAT` to `YES`"
+ required: true
+ - name: 'ROCKETCHAT_WEBHOOK_URL'
+ default_value: ''
+ description: "set `ROCKETCHAT_WEBHOOK_URL` to your webhook URL."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_ROCKETCHAT'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_ROCKETCHAT` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_ROCKETCHAT` can be edited in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_rocketchat[sysadmin]="systems"
+ role_recipients_rocketchat[domainadmin]="domains"
+ role_recipients_rocketchat[dba]="databases systems"
+ role_recipients_rocketchat[webmaster]="marketing development"
+ role_recipients_rocketchat[proxyadmin]="proxy_admin"
+ role_recipients_rocketchat[sitemgr]="sites"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # rocketchat (rocket.chat) global notification options
+
+ SEND_ROCKETCHAT="YES"
+ ROCKETCHAT_WEBHOOK_URL=""
+ DEFAULT_RECIPIENT_ROCKETCHAT="monitoring_alarms"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/sample-metadata.yaml b/health/notifications/sample-metadata.yaml
new file mode 100644
index 000000000..41a287aeb
--- /dev/null
+++ b/health/notifications/sample-metadata.yaml
@@ -0,0 +1,39 @@
+id: ''
+meta:
+ name: ''
+ link: ''
+ categories: []
+ icon_filename: ''
+keywords: []
+overview:
+ exporter_description: ''
+ exporter_limitations: ''
+setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: ''
+ configuration:
+ file:
+ name: ''
+ description: ''
+ options:
+ description: ''
+ folding:
+ title: ''
+ enabled: true
+ list:
+ - name: ''
+ default_value: ''
+ description: ''
+ required: false
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: ''
+ folding:
+ enabled: false
+ description: ''
+ config: ''
diff --git a/health/notifications/slack/metadata.yaml b/health/notifications/slack/metadata.yaml
new file mode 100644
index 000000000..226c7ca37
--- /dev/null
+++ b/health/notifications/slack/metadata.yaml
@@ -0,0 +1,63 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-slack'
+ meta:
+ name: 'Slack'
+ link: 'https://slack.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'slack.png'
+ keywords:
+ - Slack
+ overview:
+ notification_description: |
+ Send notifications to a Slack workspace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - Slack app along with an incoming webhook, read Slack's guide on the topic [here](https://api.slack.com/messaging/webhooks).
+ - One or more channels to post the messages to
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_SLACK'
+ default_value: 'YES'
+ description: "Set `SEND_SLACK` to YES"
+ required: true
+ - name: 'SLACK_WEBHOOK_URL'
+ default_value: ''
+ description: "set `SLACK_WEBHOOK_URL` to your Slack app's webhook URL."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_SLACK'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_SLACK` to the Slack channel your Slack app is set to send messages to. The syntax for channels is `#channel` or `channel`."
+ required: true
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # slack (slack.com) global notification options
+
+ SEND_SLACK="YES"
+ SLACK_WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
+ DEFAULT_RECIPIENT_SLACK="#alarms"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/smstools3/metadata.yaml b/health/notifications/smstools3/metadata.yaml
new file mode 100644
index 000000000..3a29183a5
--- /dev/null
+++ b/health/notifications/smstools3/metadata.yaml
@@ -0,0 +1,84 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-sms'
+ meta:
+ name: 'SMS'
+ link: 'http://smstools3.kekekasvi.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'sms.svg'
+ keywords:
+ - SMS tools 3
+ - SMS
+ - Messaging
+ overview:
+ notification_description: |
+ Send notifications to `smstools3` using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - [Install](http://smstools3.kekekasvi.com/index.php?p=compiling) and [configure](http://smstools3.kekekasvi.com/index.php?p=configure) `smsd`
+ - To ensure that the user `netdata` can execute `sendsms`. Any user executing `sendsms` needs to:
+ - Have write permissions to /tmp and /var/spool/sms/outgoing
+ - Be a member of group smsd
+ - To ensure that the steps above are successful, just su netdata and execute sendsms phone message.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'sendsms'
+ default_value: 'YES'
+ description: "Set the path for `sendsms`, otherwise Netdata will search for it in your system `$PATH:`"
+ required: true
+ detailed_description: |
+ # The full path of the sendsms command (smstools3).
+ # If empty, the system $PATH will be searched for it.
+ # If not found, SMS notifications will be silently disabled.
+ sendsms="/usr/bin/sendsms"
+ - name: 'SEND_SMS'
+ default_value: ''
+ description: "Set `SEND_SMS` to `YES`."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_SMS'
+ default_value: ''
+ description: "Set DEFAULT_RECIPIENT_SMS to the phone number you want the alert notifications to be sent to. You can define multiple phone numbers like this: PHONE1 PHONE2."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ You can then have different phone numbers per role, by editing `DEFAULT_RECIPIENT_SMS` with the phone number you want, in the following entries at the bottom of the same file:
+ ```conf
+ role_recipients_sms[sysadmin]="PHONE1"
+ role_recipients_sms[domainadmin]="PHONE2"
+ role_recipients_sms[dba]="PHONE3"
+ role_recipients_sms[webmaster]="PHONE4"
+ role_recipients_sms[proxyadmin]="PHONE5"
+ role_recipients_sms[sitemgr]="PHONE6"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # SMS Server Tools 3 (smstools3) global notification options
+ SEND_SMS="YES"
+ DEFAULT_RECIPIENT_SMS="1234567890"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/syslog/metadata.yaml b/health/notifications/syslog/metadata.yaml
new file mode 100644
index 000000000..c5f241e76
--- /dev/null
+++ b/health/notifications/syslog/metadata.yaml
@@ -0,0 +1,88 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-syslog'
+ meta:
+ name: 'syslog'
+ link: ''
+ categories:
+ - notify.agent
+ icon_filename: 'syslog.png'
+ keywords:
+ - syslog
+ overview:
+ notification_description: |
+ Send notifications to Syslog using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A working `logger` command for this to work. This is the case on pretty much every Linux system in existence, and most BSD systems.
+ - Access to the terminal where Netdata Agent is running
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SYSLOG_FACILITY'
+ default_value: ''
+ description: "Set `SYSLOG_FACILITY` to the facility used for logging, by default this value is set to `local6`."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_SYSLOG'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_SYSLOG` to the recipient you want the alert notifications to be sent to."
+ required: true
+ detailed_description: |
+ Targets are defined as follows:
+
+ ```
+ [[facility.level][@host[:port]]/]prefix
+ ```
+
+ prefix defines what the log messages are prefixed with. By default, all lines are prefixed with 'netdata'.
+
+ The facility and level are the standard syslog facility and level options, for more info on them see your local logger and syslog documentation. By default, Netdata will log to the local6 facility, with a log level dependent on the type of message (crit for CRITICAL, warning for WARNING, and info for everything else).
+
+ You can configure sending directly to remote log servers by specifying a host (and optionally a port). However, this has a somewhat high overhead, so it is much preferred to use your local syslog daemon to handle the forwarding of messages to remote systems (pretty much all of them allow at least simple forwarding, and most of the really popular ones support complex queueing and routing of messages to remote log servers).
+
+ You can define multiple recipients like this: daemon.notice@loghost:514/netdata daemon.notice@loghost2:514/netdata.
+ All roles will default to this variable if left unconfigured.
+ - name: 'SEND_SYSLOG '
+ default_value: ''
+ description: "Set SEND_SYSLOG to YES, make sure you have everything else configured before turning this on."
+ required: true
+ detailed_description: |
+ You can then have different recipients per role, by editing DEFAULT_RECIPIENT_SYSLOG with the recipient you want, in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_syslog[sysadmin]="daemon.notice@loghost1:514/netdata"
+ role_recipients_syslog[domainadmin]="daemon.notice@loghost2:514/netdata"
+ role_recipients_syslog[dba]="daemon.notice@loghost3:514/netdata"
+ role_recipients_syslog[webmaster]="daemon.notice@loghost4:514/netdata"
+ role_recipients_syslog[proxyadmin]="daemon.notice@loghost5:514/netdata"
+ role_recipients_syslog[sitemgr]="daemon.notice@loghost6:514/netdata"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # syslog notifications
+
+ SEND_SYSLOG="YES"
+ SYSLOG_FACILITY='local6'
+ DEFAULT_RECIPIENT_SYSLOG="daemon.notice@loghost6:514/netdata"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/telegram/metadata.yaml b/health/notifications/telegram/metadata.yaml
new file mode 100644
index 000000000..23fce2a85
--- /dev/null
+++ b/health/notifications/telegram/metadata.yaml
@@ -0,0 +1,77 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-telegram'
+ meta:
+ name: 'Telegram'
+ link: 'https://telegram.org/'
+ categories:
+ - notify.agent
+ icon_filename: 'telegram.svg'
+ keywords:
+ - Telegram
+ overview:
+ notification_description: |
+ Send notifications to Telegram using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - A bot token. To get one, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot` and follow the instructions. Start a conversation with your bot or invite it into a group where you want it to send messages.
+ - The chat ID for every chat you want to send messages to. Contact the [@myidbot](https://t.me/myidbot) bot and send the `/getid` command to get your personal chat ID or invite it into a group and use the `/getgroupid` command to get the group chat ID. Group IDs start with a hyphen, supergroup IDs start with `-100`.
+ - Alternatively, you can get the chat ID directly from the bot API. Send your bot a command in the chat you want to use, then check `https://api.telegram.org/bot{YourBotToken}/getUpdates`, eg. `https://api.telegram.org/bot111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5/getUpdates`
+ - Terminal access to the Agent you wish to configure
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_TELEGRAM'
+ default_value: 'YES'
+ description: "Set `SEND_TELEGRAM` to YES"
+ required: true
+ - name: 'TELEGRAM_BOT_TOKEN'
+ default_value: ''
+ description: "set `TELEGRAM_BOT_TOKEN` to your bot token."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_TELEGRAM'
+ default_value: ''
+ description: "Set `DEFAULT_RECIPIENT_TELEGRAM` to the chat ID you want the alert notifications to be sent to. You can define multiple chat IDs like this: 49999333322 -1009999222255."
+ required: true
+ detailed_description: |
+ All roles will default to this variable if left unconfigured.
+
+ The `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_telegram[sysadmin]="49999333324"
+ role_recipients_telegram[domainadmin]="49999333389"
+ role_recipients_telegram[dba]="-1009999222255"
+ role_recipients_telegram[webmaster]="-1009999222255 49999333389"
+ role_recipients_telegram[proxyadmin]="49999333344"
+ role_recipients_telegram[sitemgr]="49999333876"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # telegram (telegram.org) global notification options
+
+ SEND_TELEGRAM="YES"
+ TELEGRAM_BOT_TOKEN="111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5"
+ DEFAULT_RECIPIENT_TELEGRAM="-100233335555"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/health/notifications/twilio/metadata.yaml b/health/notifications/twilio/metadata.yaml
new file mode 100644
index 000000000..35fc3f042
--- /dev/null
+++ b/health/notifications/twilio/metadata.yaml
@@ -0,0 +1,83 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-twilio'
+ meta:
+ name: 'Twilio'
+ link: 'https://www.twilio.com/'
+ categories:
+ - notify.agent
+ icon_filename: 'twilio.png'
+ keywords:
+ - Twilio
+ overview:
+ notification_description: |
+ Send notifications to Twilio using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.
+ notification_limitations: ''
+ setup:
+ prerequisites:
+ list:
+ - title: ''
+ description: |
+ - Get your SID, and Token from https://www.twilio.com/console
+ - Terminal access to the Agent you wish to configure
+ configuration:
+ file:
+ name: 'health_alarm_notify.conf'
+ options:
+ description: 'The following options can be defined for this notification'
+ folding:
+ title: 'Config Options'
+ enabled: true
+ list:
+ - name: 'SEND_TWILIO'
+ default_value: 'YES'
+ description: "Set `SEND_TWILIO` to YES"
+ required: true
+ - name: 'TWILIO_ACCOUNT_SID'
+ default_value: ''
+ description: "set `TWILIO_ACCOUNT_SID` to your account SID."
+ required: true
+ - name: 'TWILIO_ACCOUNT_TOKEN '
+ default_value: ''
+ description: "Set `TWILIO_ACCOUNT_TOKEN` to your account token."
+ required: true
+ - name: 'TWILIO_NUMBER'
+ default_value: ''
+ description: "Set `TWILIO_NUMBER` to your account's number."
+ required: true
+ - name: 'DEFAULT_RECIPIENT_TWILIO'
+ default_value: ''
+ description: "Set DEFAULT_RECIPIENT_TWILIO to the number you want the alert notifications to be sent to. You can define multiple numbers like this: +15555555555 +17777777777."
+ required: true
+ detailed_description: |
+ You can then have different recipients per role, by editing DEFAULT_RECIPIENT_TWILIO with the recipient's number you want, in the following entries at the bottom of the same file:
+
+ ```conf
+ role_recipients_twilio[sysadmin]="+15555555555"
+ role_recipients_twilio[domainadmin]="+15555555556"
+ role_recipients_twilio[dba]="+15555555557"
+ role_recipients_twilio[webmaster]="+15555555558"
+ role_recipients_twilio[proxyadmin]="+15555555559"
+ role_recipients_twilio[sitemgr]="+15555555550"
+ ```
+ examples:
+ folding:
+ enabled: true
+ title: ''
+ list:
+ - name: 'Basic Configuration'
+ folding:
+ enabled: false
+ description: ''
+ config: |
+ #------------------------------------------------------------------------------
+ # Twilio (twilio.com) SMS options
+
+ SEND_TWILIO="YES"
+ TWILIO_ACCOUNT_SID="xxxxxxxxx"
+ TWILIO_ACCOUNT_TOKEN="xxxxxxxxxx"
+ TWILIO_NUMBER="xxxxxxxxxxx"
+ DEFAULT_RECIPIENT_TWILIO="+15555555555"
+ troubleshooting:
+ problems:
+ list: []
diff --git a/integrations/README.md b/integrations/README.md
new file mode 100644
index 000000000..377c1a306
--- /dev/null
+++ b/integrations/README.md
@@ -0,0 +1,26 @@
+To generate a copy of `integrations.js` locally, you will need:
+
+- Python 3.6 or newer (only tested on Python 3.10 currently, should work
+ on any version of Python newer than 3.6).
+- The following third-party Python modules:
+ - `jsonschema`
+ - `referencing`
+ - `jinja2`
+ - `ruamel.yaml`
+- A local checkout of https://github.com/netdata/netdata
+- A local checkout of https://github.com/netdata/go.d.plugin. The script
+ expects this to be checked out in a directory called `go.d.plugin`
+ in the root directory of the agent repo, though a symlink with that
+ name pointing at the actual location of the repo will work as well.
+
+The first two parts can be easily covered in a Linux environment, such
+as a VM or Docker container:
+
+- On Debian or Ubuntu: `apt-get install python3-jsonschema python3-referencing python3-jinja2 python3-ruamel.yaml`
+- On Alpine: `apk add py3-jsonschema py3-referencing py3-jinja2 py3-ruamel.yaml`
+- On Fedora or RHEL (EPEL is required on RHEL systems): `dnf install python3-jsonschema python3-referencing python3-jinja2 python3-ruamel-yaml`
+
+Once the environment is set up, simply run
+`integrations/gen_integrations.py` from the agent repo. Note that the
+script must be run _from this specific location_, as it uses it’s own
+path to figure out where all the files it needs are.
diff --git a/integrations/categories.yaml b/integrations/categories.yaml
index 6f0fdbdd9..10cf3c580 100644
--- a/integrations/categories.yaml
+++ b/integrations/categories.yaml
@@ -1,264 +1,434 @@
-- name: deploy
+- id: deploy
+ name: Deploy
description: ""
- most-popular: false
+ most_popular: true
+ priority: 1
children:
- id: deploy.operating-systems
name: Operating Systems
description: ""
- most-popular: false
+ most_popular: true
+ priority: 1
children: []
- id: deploy.docker-kubernetes
name: Docker & Kubernetes
description: ""
- most-popular: false
+ most_popular: true
+ priority: 2
children: []
- id: deploy.provisioning-systems
parent: deploy
name: Provisioning Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
-- name: data-collection
+- id: data-collection
+ name: Data Collection
description: ""
- most-popular: false
+ most_popular: true
+ priority: 2
children:
- id: data-collection.other
name: Other
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
+ collector_default: true
+ children: []
+ - id: data-collection.ebpf
+ name: eBPF
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.freebsd
+ name: FreeBSD
+ description: ""
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.containers-and-vms
name: Containers and VMs
description: ""
- most-popular: false
+ most_popular: true
+ priority: 6
children: []
- id: data-collection.database-servers
- name: Database Servers
+ name: Databases
description: ""
- most-popular: false
+ most_popular: true
+ priority: 1
children: []
- id: data-collection.kubernetes
name: Kubernetes
description: ""
- most-popular: false
+ most_popular: true
+ priority: 7
+ children: []
+ - id: data-collection.notifications
+ name: Incident Management
+ description: ""
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.service-discovery-registry
name: Service Discovery / Registry
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.web-servers-and-web-proxies
name: Web Servers and Web Proxies
description: ""
- most-popular: false
+ most_popular: true
+ priority: 2
children: []
- id: data-collection.cloud-provider-managed
name: Cloud Provider Managed
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.windows-systems
name: Windows Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.apm
name: APM
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.hardware-devices-and-sensors
name: Hardware Devices and Sensors
description: ""
- most-popular: false
+ most_popular: true
+ priority: 4
children: []
- id: data-collection.macos-systems
name: macOS Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.message-brokers
name: Message Brokers
description: ""
- most-popular: false
+ most_popular: true
+ priority: 3
children: []
- id: data-collection.provisioning-systems
name: Provisioning Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.search-engines
name: Search Engines
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.linux-systems
name: Linux Systems
description: ""
- most-popular: false
- children: []
- - id: data-collection.notifications
- name: Notifications
- description: ""
- most-popular: false
- children: []
+ most_popular: true
+ priority: 5
+ children:
+ - id: data-collection.linux-systems.system-metrics
+ name: System
+ description: ""
+ most_popular: true
+ priority: 1
+ children: []
+ - id: data-collection.linux-systems.memory-metrics
+ name: Memory
+ description: ""
+ most_popular: true
+ priority: 3
+ children: []
+ - id: data-collection.linux-systems.cpu-metrics
+ name: CPU
+ description: ""
+ most_popular: true
+ priority: 2
+ children: []
+ - id: data-collection.linux-systems.pressure-metrics
+ name: Pressure
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.network-metrics
+ name: Network
+ description: ""
+ most_popular: true
+ priority: 5
+ children: []
+ - id: data-collection.linux-systems.ipc-metrics
+ name: IPC
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.disk-metrics
+ name: Disk
+ description: ""
+ most_popular: true
+ priority: 4
+ children: []
+ - id: data-collection.linux-systems.firewall-metrics
+ name: Firewall
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.power-supply-metrics
+ name: Power Supply
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.filesystem-metrics
+ name: Filesystem
+ description: ""
+ most_popular: false
+ priority: -1
+ children:
+ - id: data-collection.linux-systems.filesystem-metrics.zfs
+ name: ZFS
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.filesystem-metrics.btrfs
+ name: BTRFS
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.filesystem-metrics.nfs
+ name: NFS
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
+ - id: data-collection.linux-systems.kernel-metrics
+ name: Kernel
+ description: ""
+ most_popular: false
+ priority: -1
+ children: []
- id: data-collection.networking-stack-and-network-interfaces
name: Networking Stack and Network Interfaces
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.synthetic-checks
name: Synthetic Checks
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.ci-cd-systems
- name: CI/CD Systems
+ name: CI/CD Platforms
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.ups
name: UPS
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.freebsd-systems
name: FreeBSD Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.logs-servers
name: Logs Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.security-systems
name: Security Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.observability
name: Observability
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.gaming
name: Gaming
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.iot-devices
name: IoT Devices
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.media-streaming-servers
- name: Media Streaming Servers
+ name: Media Services
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.authentication-and-authorization
name: Authentication and Authorization
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.project-management
name: Project Management
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.application-servers
name: Application Servers
description: ""
- most-popular: false
- children: []
- - id: data-collection.export
- name: Export
- description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.dns-and-dhcp-servers
name: DNS and DHCP Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.mail-servers
name: Mail Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.processes-and-system-services
name: Processes and System Services
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.storage-mount-points-and-filesystems
name: Storage, Mount Points and Filesystems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.systemd
name: Systemd
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.telephony-servers
name: Telephony Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.vpns
name: VPNs
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.blockchain-servers
name: Blockchain Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.distributed-computing-systems
name: Distributed Computing Systems
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.generic-data-collection
name: Generic Data Collection
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.p2p
name: P2P
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.snmp-and-networked-devices
name: SNMP and Networked Devices
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.system-clock-and-ntp
name: System Clock and NTP
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.nas
name: NAS
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.api-gateways
name: API Gateways
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.task-queues
name: Task Queues
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
children: []
- id: data-collection.ftp-servers
name: FTP Servers
description: ""
- most-popular: false
+ most_popular: false
+ priority: -1
+ children: []
+- id: export
+ name: exporters
+ description: "Exporter Integrations"
+ most_popular: true
+ priority: 4
+ children: []
+- id: notify
+ name: notifications
+ description: "Notification Integrations"
+ most_popular: true
+ priority: 3
+ children:
+ - id: notify.agent
+ name: Agent Dispatched Notifications
+ description: ""
+ most_popular: true
+ priority: 2
+ children: []
+ - id: notify.cloud
+ name: Centralized Cloud Notifications
+ description: ""
+ most_popular: true
+ priority: 1
children: []
diff --git a/integrations/check_collector_metadata.py b/integrations/check_collector_metadata.py
new file mode 100755
index 000000000..4e610b068
--- /dev/null
+++ b/integrations/check_collector_metadata.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+
+import sys
+
+from pathlib import Path
+
+from jsonschema import ValidationError
+
+from gen_integrations import (CATEGORIES_FILE, SINGLE_PATTERN, MULTI_PATTERN, SINGLE_VALIDATOR, MULTI_VALIDATOR,
+ load_yaml, get_category_sets)
+
+
+def main():
+ if len(sys.argv) != 2:
+ print(':error:This script takes exactly one argument.')
+ return 2
+
+ check_path = Path(sys.argv[1])
+
+ if not check_path.is_file():
+ print(f':error file={ check_path }:{ check_path } does not appear to be a regular file.')
+ return 1
+
+ if check_path.match(SINGLE_PATTERN):
+ variant = 'single'
+ print(f':debug:{ check_path } appears to be single-module metadata.')
+ elif check_path.match(MULTI_PATTERN):
+ variant = 'multi'
+ print(f':debug:{ check_path } appears to be multi-module metadata.')
+ else:
+ print(f':error file={ check_path }:{ check_path } does not match required file name format.')
+ return 1
+
+ categories = load_yaml(CATEGORIES_FILE)
+
+ if not categories:
+ print(':error:Failed to load categories file.')
+ return 2
+
+ _, valid_categories = get_category_sets(categories)
+
+ data = load_yaml(check_path)
+
+ if not data:
+ print(f':error file={ check_path }:Failed to load data from { check_path }.')
+ return 1
+
+ check_modules = []
+
+ if variant == 'single':
+ try:
+ SINGLE_VALIDATOR.validate(data)
+ except ValidationError as e:
+ print(f':error file={ check_path }:Failed to validate { check_path } against the schema.')
+ raise e
+ else:
+ check_modules.append(data)
+ elif variant == 'multi':
+ try:
+ MULTI_VALIDATOR.validate(data)
+ except ValidationError as e:
+ print(f':error file={ check_path }:Failed to validate { check_path } against the schema.')
+ raise e
+ else:
+ for item in data['modules']:
+ item['meta']['plugin_name'] = data['plugin_name']
+ check_modules.append(item)
+ else:
+ print(':error:Internal error encountered.')
+ return 2
+
+ failed = False
+
+ for idx, module in enumerate(check_modules):
+ invalid_cats = set(module['meta']['monitored_instance']['categories']) - valid_categories
+
+ if invalid_cats:
+ print(f':error file={ check_path }:Invalid categories found in module { idx } in { check_path }: { ", ".joiin(invalid_cats) }.')
+ failed = True
+
+ if failed:
+ return 1
+ else:
+ print('{ check_path } is a valid collector metadata file.')
+ return 0
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/integrations/cloud-notifications/metadata.yaml b/integrations/cloud-notifications/metadata.yaml
new file mode 100644
index 000000000..93acbdca9
--- /dev/null
+++ b/integrations/cloud-notifications/metadata.yaml
@@ -0,0 +1,519 @@
+# yamllint disable rule:line-length
+---
+- id: 'notify-cloud-discord'
+ meta:
+ name: 'Discord'
+ link: 'https://discord.com/'
+ categories:
+ - notify.cloud
+ icon_filename: 'discord.png'
+ keywords:
+ - discord
+ - community
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Discord."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - You need to have a Discord server able to receive webhooks integrations.
+
+ ### Discord Server Configuration
+ Steps to configure your Discord server to receive [webhook notifications](https://support.discord.com/hc/en-us/articles/228383668) from Netdata:
+ 1. Go to `Server Settings` --> `Integrations`
+ 2. **Create Webhook** or **View Webhooks** if you already have some defined
+ 3. Specify the **Name** and **Channel** on your new webhook
+ 4. Use Webhook URL to add your notification configuration on Netdata UI
+
+ ### Netdata Configuration Steps
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **Discord** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Discord:
+ - Define the type channel you want to send notifications to: **Text channel** or **Forum channel**
+ - Webhook URL - URL provided on Discord for the channel you want to receive your notifications.
+ - Thread name - if the Discord channel is a **Forum channel** you will need to provide the thread name as well
+
+- id: 'notify-cloud-pagerduty'
+ meta:
+ name: 'PagerDuty'
+ link: 'https://www.pagerduty.com/'
+ categories:
+ - notify.cloud
+ icon_filename: 'pagerduty.png'
+ keywords:
+ - pagerduty
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on PagerDuty."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Business** plan or higher
+ - You need to have a PagerDuty service to receive events using webhooks.
+
+
+ ### PagerDuty Server Configuration
+ Steps to configure your PagerDuty to receive notifications from Netdata:
+
+ 1. Create a service to receive events from your services directory page on PagerDuty
+ 2. At step 3, select `Events API V2` Integration or **View Webhooks** if you already have some defined
+ 3. Once the service is created you will be redirected to its configuration page, where you can copy the **integration key**, that you will need need to add to your notification configuration on Netdata UI.
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **PagerDuty** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For PagerDuty:
+ - Integration Key - is a 32 character key provided by PagerDuty to receive events on your service.
+
+- id: 'notify-cloud-slack'
+ meta:
+ name: 'Slack'
+ link: 'https://slack.com/'
+ categories:
+ - notify.cloud
+ icon_filename: 'slack.png'
+ keywords:
+ - slack
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Slack."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Business** plan or higher
+ - You need to have a Slack app on your workspace to receive the Webhooks.
+
+ ### Slack Server Configuration
+
+ Steps to configure your Slack to receive notifications from Netdata:
+
+ 1. Create an app to receive webhook integrations. Check [Create an app](https://api.slack.com/apps?new_app=1) from Slack documentation for further details
+ 2. Install the app on your workspace
+ 3. Configure Webhook URLs for your workspace
+ - On your app go to **Incoming Webhooks** and click on **activate incoming webhooks**
+ - At the bottom of **Webhook URLs for Your Workspace** section you have **Add New Webhook to Workspace**
+ - After pressing that specify the channel where you want your notifications to be delivered
+ - Once completed copy the Webhook URL that you will need to add to your notification configuration on Netdata UI
+
+ For more details please check Slacks's article [Incoming webhooks for Slack](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack).
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **Slack** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Slack:
+ - Webhook URL - URL provided on Slack for the channel you want to receive your notifications.
+
+- id: 'notify-cloud-opsgenie'
+ meta:
+ name: 'Opsgenie'
+ link: 'https://www.atlassian.com/software/opsgenie'
+ categories:
+ - notify.cloud
+ icon_filename: 'opsgenie.png'
+ keywords:
+ - opsgenie
+ - atlassian
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Opsgenie."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Business** plan or higher
+ - You need to have permissions on Opsgenie to add new integrations.
+
+ ### Opsgenie Server Configuration
+
+ Steps to configure your Opsgenie to receive notifications from Netdata:
+
+ 1. Go to integrations tab of your team, click **Add integration**
+ 2. Pick **API** from available integrations. Copy your API Key and press **Save Integration**.
+ 3. Paste copied API key into the corresponding field in **Integration configuration** section of Opsgenie modal window in Netdata.
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **Opsgenie** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Opsgenie:
+ - API Key - a key provided on Opsgenie for the channel you want to receive your notifications.
+
+- id: 'notify-cloud-mattermost'
+ meta:
+ name: 'Mattermost'
+ link: 'https://mattermost.com/'
+ categories:
+ - notify.cloud
+ icon_filename: 'mattermost.png'
+ keywords:
+ - mattermost
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Mattermost."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Business** plan or higher
+ - You need to have permissions on Mattermost to add new integrations.
+ - You need to have a Mattermost app on your workspace to receive the webhooks.
+
+ ### Mattermost Server Configuration
+
+ Steps to configure your Mattermost to receive notifications from Netdata:
+
+ 1. In Mattermost, go to Product menu > Integrations > Incoming Webhook
+ - If you don’t have the Integrations option, incoming webhooks may not be enabled on your Mattermost server or may be disabled for non-admins. They can be enabled by a System Admin from System Console > Integrations > Integration Management. Once incoming webhooks are enabled, continue with the steps below.
+ 2. Select Add Incoming Webhook and add a name and description for the webhook. The description can be up to 500 characters
+ 3. Select the channel to receive webhook payloads, then select Add to create the webhook
+ 4. You will end up with a webhook endpoint that looks like below:
+ `https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx`
+
+ - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your Mattermost instance.
+
+ For more details please check Mattermost's article [Incoming webhooks for Mattermost](https://developers.mattermost.com/integrate/webhooks/incoming/).
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **Mattermost** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Mattermost:
+ - Webhook URL - URL provided on Mattermost for the channel you want to receive your notifications
+
+- id: 'notify-cloud-rocketchat'
+ meta:
+ name: 'RocketChat'
+ link: 'https://www.rocket.chat/'
+ categories:
+ - notify.cloud
+ icon_filename: 'rocketchat.png'
+ keywords:
+ - rocketchat
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on RocketChat."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Business** plan or higher
+ - You need to have permissions on Mattermost to add new integrations.
+ - You need to have a RocketChat app on your workspace to receive the webhooks.
+
+ ### Mattermost Server Configuration
+
+ Steps to configure your RocketChat to receive notifications from Netdata:
+
+ 1. In RocketChat, Navigate to Administration > Workspace > Integrations.
+ 2. Click **+New** at the top right corner.
+ 3. For more details about each parameter, check [create-a-new-incoming-webhook](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations#create-a-new-incoming-webhook).
+ 4. After configuring integration, click Save.
+ 5. You will end up with a webhook endpoint that looks like below:
+ `https://your-server.rocket.chat/hooks/YYYYYYYYYYYYYYYYYYYYYYYY/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`
+ - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your RocketChat instance.
+
+
+ For more details please check RocketChat's article Incoming webhooks for [RocketChat](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations/).
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **RocketChat** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For RocketChat:
+ - Webhook URL - URL provided on RocketChat for the channel you want to receive your notifications.
+
+- id: 'notify-cloud-webhook'
+ meta:
+ name: 'Webhook'
+ link: 'https://en.wikipedia.org/wiki/Webhook'
+ categories:
+ - notify.cloud
+ icon_filename: 'webhook.svg'
+ keywords:
+ - generic webhooks
+ - webhooks
+ overview:
+ notification_description: "From the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on a webhook using a predefined schema."
+ notification_limitations: ''
+ setup:
+ description: |
+ ### Prerequisites
+
+ - A Netdata Cloud account
+ - Access to the Netdata Space as an **administrator**
+ - The Netdata Space needs to be on **Pro** plan or higher
+ - You need to have an app that allows you to receive webhooks following a predefined schema.
+
+ ### Netdata Configuration Steps
+
+ 1. Click on the **Space settings** cog (located above your profile icon)
+ 2. Click on the **Notification** tab
+ 3. Click on the **+ Add configuration** button (near the top-right corner of your screen)
+ 4. On the **Webhook** card click on **+ Add**
+ 5. A modal will be presented to you to enter the required details to enable the configuration:
+ * **Notification settings** are Netdata specific settings
+ - Configuration name - you can optionally provide a name for your configuration you can easily refer to it
+ - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration
+ - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only
+ * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Webhook:
+ - Webhook URL - webhook URL is the url of the service that Netdata will send notifications to. In order to keep the communication secured, we only accept HTTPS urls.
+ - Extra headers - these are optional key-value pairs that you can set to be included in the HTTP requests sent to the webhook URL.
+ - Authentication Mechanism - Netdata webhook integration supports 3 different authentication mechanisms.
+ * Mutual TLS (recommended) - default authentication mechanism used if no other method is selected.
+ * Basic - the client sends a request with an Authorization header that includes a base64-encoded string in the format **username:password**. These will settings will be required inputs.
+ * Bearer - the client sends a request with an Authorization header that includes a **bearer token**. This setting will be a required input.
+
+
+ ### Webhook service
+
+ A webhook integration allows your application to receive real-time alerts from Netdata by sending HTTP requests to a specified URL. In this document, we'll go over the steps to set up a generic webhook integration, including adding headers, and implementing different types of authorization mechanisms.
+
+ #### Netdata webhook integration
+
+ A webhook integration is a way for one service to notify another service about events that occur within it. This is done by sending an HTTP POST request to a specified URL (known as the "webhook URL") when an event occurs.
+
+ Netdata webhook integration service will send alert notifications to the destination service as soon as they are detected.
+
+ The notification content sent to the destination service will be a JSON object having these properties:
+
+ | field | type | description |
+ | :-- | :-- | :-- |
+ | message | string | A summary message of the alert. |
+ | alarm | string | The alarm the notification is about. |
+ | info | string | Additional info related with the alert. |
+ | chart | string | The chart associated with the alert. |
+ | context | string | The chart context. |
+ | space | string | The space where the node that raised the alert is assigned. |
+ | rooms | object[object(string,string)] | Object with list of rooms names and urls where the node belongs to. |
+ | family | string | Context family. |
+ | class | string | Classification of the alert, e.g. "Error". |
+ | severity | string | Alert severity, can be one of "warning", "critical" or "clear". |
+ | date | string | Date of the alert in ISO8601 format. |
+ | duration | string | Duration the alert has been raised. |
+ | additional_active_critical_alerts | integer | Number of additional critical alerts currently existing on the same node. |
+ | additional_active_warning_alerts | integer | Number of additional warning alerts currently existing on the same node. |
+ | alarm_url | string | Netdata Cloud URL for this alarm. |
+
+ #### Extra headers
+
+ When setting up a webhook integration, the user can specify a set of headers to be included in the HTTP requests sent to the webhook URL.
+
+ By default, the following headers will be sent in the HTTP request
+
+ | **Header** | **Value** |
+ |:-------------------------------:|-----------------------------|
+ | Content-Type | application/json |
+
+ #### Authentication mechanisms
+
+ Netdata webhook integration supports 3 different authentication mechanisms:
+
+ ##### Mutual TLS authentication (recommended)
+
+ In mutual Transport Layer Security (mTLS) authentication, the client and the server authenticate each other using X.509 certificates. This ensures that the client is connecting to the intended server, and that the server is only accepting connections from authorized clients.
+
+ This is the default authentication mechanism used if no other method is selected.
+
+ To take advantage of mutual TLS, you can configure your server to verify Netdata's client certificate. In order to achieve this, the Netdata client sending the notification supports mutual TLS (mTLS) to identify itself with a client certificate that your server can validate.
+
+ The steps to perform this validation are as follows:
+
+ - Store Netdata CA certificate on a file in your disk. The content of this file should be:
+
+
+ Netdata CA certificate
+
+ ```
+ -----BEGIN CERTIFICATE-----
+ MIIF0jCCA7qgAwIBAgIUDV0rS5jXsyNX33evHEQOwn9fPo0wDQYJKoZIhvcNAQEN
+ BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
+ Ew1TYW4gRnJhbmNpc2NvMRYwFAYDVQQKEw1OZXRkYXRhLCBJbmMuMRIwEAYDVQQL
+ EwlDbG91ZCBTUkUxGDAWBgNVBAMTD05ldGRhdGEgUm9vdCBDQTAeFw0yMzAyMjIx
+ MjQzMDBaFw0zMzAyMTkxMjQzMDBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+ Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNTmV0
+ ZGF0YSwgSW5jLjESMBAGA1UECxMJQ2xvdWQgU1JFMRgwFgYDVQQDEw9OZXRkYXRh
+ IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwIg7z3R++
+ ppQYYVVoMIDlhWO3qVTMsAQoJYEvVa6fqaImUBLW/k19LUaXgUJPohB7gBp1pkjs
+ QfY5dBo8iFr7MDHtyiAFjcQV181sITTMBEJwp77R4slOXCvrreizhTt1gvf4S1zL
+ qeHBYWEgH0RLrOAqD0jkOHwewVouO0k3Wf2lEbCq3qRk2HeDvkv0LR7sFC+dDms8
+ fDHqb/htqhk+FAJELGRqLeaFq1Z5Eq1/9dk4SIeHgK5pdYqsjpBzOTmocgriw6he
+ s7F3dOec1ZZdcBEAxOjbYt4e58JwuR81cWAVMmyot5JNCzYVL9e5Vc5n22qt2dmc
+ Tzw2rLOPt9pT5bzbmyhcDuNg2Qj/5DySAQ+VQysx91BJRXyUimqE7DwQyLhpQU72
+ jw29lf2RHdCPNmk8J1TNropmpz/aI7rkperPugdOmxzP55i48ECbvDF4Wtazi+l+
+ 4kx7ieeLfEQgixy4lRUUkrgJlIDOGbw+d2Ag6LtOgwBiBYnDgYpvLucnx5cFupPY
+ Cy3VlJ4EKUeQQSsz5kVmvotk9MED4sLx1As8V4e5ViwI5dCsRfKny7BeJ6XNPLnw
+ PtMh1hbiqCcDmB1urCqXcMle4sRhKccReYOwkLjLLZ80A+MuJuIEAUUuEPCwywzU
+ R7pagYsmvNgmwIIuJtB6mIJBShC7TpJG+wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+ AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU9IbvOsPSUrpr8H2zSafYVQ9e
+ Ft8wDQYJKoZIhvcNAQENBQADggIBABQ08aI31VKZs8jzg+y/QM5cvzXlVhcpkZsY
+ 1VVBr0roSBw9Pld9SERrEHto8PVXbadRxeEs4sKivJBKubWAooQ6NTvEB9MHuGnZ
+ VCU+N035Gq/mhBZgtIs/Zz33jTB2ju3G4Gm9VTZbVqd0OUxFs41Iqvi0HStC3/Io
+ rKi7crubmp5f2cNW1HrS++ScbTM+VaKVgQ2Tg5jOjou8wtA+204iYXlFpw9Q0qnP
+ qq6ix7TfLLeRVp6mauwPsAJUgHZluz7yuv3r7TBdukU4ZKUmfAGIPSebtB3EzXfH
+ 7Y326xzv0hEpjvDHLy6+yFfTdBSrKPsMHgc9bsf88dnypNYL8TUiEHlcTgCGU8ts
+ ud8sWN2M5FEWbHPNYRVfH3xgY2iOYZzn0i+PVyGryOPuzkRHTxDLPIGEWE5susM4
+ X4bnNJyKH1AMkBCErR34CLXtAe2ngJlV/V3D4I8CQFJdQkn9tuznohUU/j80xvPH
+ FOcDGQYmh4m2aIJtlNVP6+/92Siugb5y7HfslyRK94+bZBg2D86TcCJWaaZOFUrR
+ Y3WniYXsqM5/JI4OOzu7dpjtkJUYvwtg7Qb5jmm8Ilf5rQZJhuvsygzX6+WM079y
+ nsjoQAm6OwpTN5362vE9SYu1twz7KdzBlUkDhePEOgQkWfLHBJWwB+PvB1j/cUA3
+ 5zrbwvQf
+ -----END CERTIFICATE-----
+ ```
+
+
+ - Enable client certificate validation on the web server that is doing the TLS termination. Below we show you how to perform this configuration in `NGINX` and `Apache`
+
+ **NGINX**
+
+ ```bash
+ server {
+ listen 443 ssl default_server;
+
+ # ... existing SSL configuration for server authentication ...
+ ssl_verify_client on;
+ ssl_client_certificate /path/to/Netdata_CA.pem;
+
+ location / {
+ if ($ssl_client_s_dn !~ "CN=app.netdata.cloud") {
+ return 403;
+ }
+ # ... existing location configuration ...
+ }
+ }
+ ```
+
+ **Apache**
+
+ ```bash
+ Listen 443
+
+ # ... existing SSL configuration for server authentication ...
+ SSLVerifyClient require
+ SSLCACertificateFile "/path/to/Netdata_CA.pem"
+
+
+ Require expr "%{SSL_CLIENT_S_DN_CN} == 'app.netdata.cloud'"
+ # ... existing directory configuration ...
+
+ ```
+
+ ##### Basic authentication
+
+ In basic authorization, the client sends a request with an Authorization header that includes a base64-encoded string in the format username:password. The server then uses this information to authenticate the client. If this authentication method is selected, the user can set the user and password that will be used when connecting to the destination service.
+
+ ##### Bearer token authentication
+
+ In bearer token authentication, the client sends a request with an Authorization header that includes a bearer token. The server then uses this token to authenticate the client. Bearer tokens are typically generated by an authentication service, and are passed to the client after a successful authentication. If this method is selected, the user can set the token to be used for connecting to the destination service.
+
+ ###### Challenge secret
+
+ To validate that you has ownership of the web application that will receive the webhook events, we are using a challenge response check mechanism.
+
+ This mechanism works as follows:
+
+ - The challenge secret parameter that you provide is a shared secret between you and Netdata only.
+ - On your request for creating a new Webhook integration, we will make a GET request to the url of the webhook, adding a query parameter `crc_token`, consisting of a random string.
+ - You will receive this request on your application and it must construct an encrypted response, consisting of a base64-encoded HMAC SHA-256 hash created from the crc_token and the shared secret. The response will be in the format:
+
+ ```json
+ {
+ "response_token": "sha256=9GKoHJYmcHIkhD+C182QWN79YBd+D+Vkj4snmZrfNi4="
+ }
+ ```
+
+ - We will compare your application's response with the hash that we will generate using the challenge secret, and if they are the same, the integration creation will succeed.
+
+ We will do this validation everytime you update your integration configuration.
+
+ - Response requirements:
+ - A base64 encoded HMAC SHA-256 hash created from the crc_token and the shared secret.
+ - Valid response_token and JSON format.
+ - Latency less than 5 seconds.
+ - 200 HTTP response code.
+
+ **Example response token generation in Python:**
+
+ Here you can see how to define a handler for a Flask application in python 3:
+
+ ```python
+ import base64
+ import hashlib
+ import hmac
+ import json
+
+ key ='YOUR_CHALLENGE_SECRET'
+
+ @app.route('/webhooks/netdata')
+ def webhook_challenge():
+ token = request.args.get('crc_token').encode('ascii')
+
+ # creates HMAC SHA-256 hash from incomming token and your consumer secret
+ sha256_hash_digest = hmac.new(key.encode(),
+ msg=token,
+ digestmod=hashlib.sha256).digest()
+
+ # construct response data with base64 encoded hash
+ response = {
+ 'response_token': 'sha256=' + base64.b64encode(sha256_hash_digest).decode('ascii')
+ }
+
+ # returns properly formatted json response
+ return json.dumps(response)
+ ```
diff --git a/integrations/deploy.yaml b/integrations/deploy.yaml
new file mode 100644
index 000000000..846a779d7
--- /dev/null
+++ b/integrations/deploy.yaml
@@ -0,0 +1,578 @@
+- &linux
+ id: deploy-linux-generic
+ meta: &linux_meta
+ name: Linux
+ link: ''
+ categories:
+ - deploy.operating-systems
+ icon_filename: 'linux.png'
+ keywords:
+ - linux
+ most_popular: true
+ install_description: 'Run the following command on your node to install and claim Netdata:'
+ methods:
+ - &ks_wget
+ method: wget
+ commands:
+ - channel: nightly
+ command: >
+ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ - channel: stable
+ command: >
+ wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ - &ks_curl
+ method: curl
+ commands:
+ - channel: nightly
+ command: >
+ curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ - channel: stable
+ command: >
+ curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ additional_info: &ref_containers >
+ Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId="deploy.docker-kubernetes" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId="deploy.docker-kubernetes" %}Docker{% /goToCategory %}?
+ related_resources: {}
+ platform_info:
+ group: ''
+ distro: ''
+ quick_start: 1
+- <<: *linux
+ id: deploy-ubuntu
+ meta:
+ <<: *linux_meta
+ name: Ubuntu
+ link: https://ubuntu.com/
+ icon_filename: 'ubuntu.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'ubuntu'
+ quick_start: -1
+- <<: *linux
+ id: deploy-debian
+ meta:
+ <<: *linux_meta
+ name: Debian
+ link: https://www.debian.org/
+ icon_filename: 'debian.svg'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'debian'
+ quick_start: -1
+- <<: *linux
+ id: deploy-fedora
+ meta:
+ <<: *linux_meta
+ name: Fedora
+ link: https://www.fedoraproject.org/
+ icon_filename: 'fedora.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'fedora'
+ quick_start: -1
+- <<: *linux
+ id: deploy-rhel
+ meta:
+ <<: *linux_meta
+ name: Red Hat Enterprise Linux
+ link: https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
+ icon_filename: 'rhel.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'rhel'
+ quick_start: -1
+- <<: *linux
+ id: deploy-almalinux
+ meta:
+ <<: *linux_meta
+ name: Alma Linux
+ link: https://almalinux.org/
+ icon_filename: 'alma.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'almalinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-alpinelinux
+ meta:
+ <<: *linux_meta
+ name: Alpine Linux
+ link: https://www.alpinelinux.org/
+ icon_filename: 'alpine.svg'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'alpinelinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-amazonlinux
+ meta:
+ <<: *linux_meta
+ name: Amazon Linux
+ link: https://aws.amazon.com/amazon-linux-2/
+ icon_filename: 'amazonlinux.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'amazonlinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-archlinux
+ meta:
+ <<: *linux_meta
+ name: Arch Linux
+ link: https://archlinux.org/
+ icon_filename: 'archlinux.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'archlinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-centos
+ meta:
+ <<: *linux_meta
+ name: CentOS
+ link: https://www.centos.org/
+ icon_filename: 'centos.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'centos'
+ quick_start: -1
+- <<: *linux
+ id: deploy-manjarolinux
+ meta:
+ <<: *linux_meta
+ name: Manjaro Linux
+ link: https://manjaro.org/
+ icon_filename: 'manjaro.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'archlinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-oraclelinux
+ meta:
+ <<: *linux_meta
+ name: Oracle Linux
+ link: https://www.oracle.com/linux/
+ icon_filename: 'oraclelinux.svg'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'oraclelinux'
+ quick_start: -1
+- <<: *linux
+ id: deploy-opensuse
+ meta:
+ <<: *linux_meta
+ name: SUSE Linux
+ link: https://www.suse.com/
+ icon_filename: 'openSUSE.png'
+ most_popular: false
+ platform_info:
+ group: 'include'
+ distro: 'opensuse'
+ quick_start: -1
+- id: deploy-macos
+ meta:
+ name: macOS
+ link: ''
+ categories:
+ - deploy.operating-systems
+ icon_filename: 'apple.svg'
+ most_popular: true
+ keywords:
+ - macOS
+ - mac
+ - apple
+ install_description: 'Run the following command on your Intel based OSX, macOS servers to install and claim Netdata:'
+ methods:
+ - *ks_curl
+ additional_info: *ref_containers
+ related_resources: {}
+ platform_info:
+ group: 'include'
+ distro: 'macos'
+ quick_start: 5
+- id: deploy-docker
+ meta:
+ name: Docker
+ link: 'https://www.docker.com/'
+ categories:
+ - deploy.docker-kubernetes
+ icon_filename: 'docker.svg'
+ most_popular: true
+ keywords:
+ - docker
+ - container
+ - containers
+ install_description: |
+ Install and connect new Docker containers
+ Find the commands for `docker run`, `docker compose` or `Docker Swarm`. On the last two you can copy the configs, then run `docker-compose up -d` in the same directory as the `docker-compose.yml`
+
+ > Netdata container requires different privileges and mounts to provide functionality similar to that provided by Netdata installed on the host. More info [here](https://learn.netdata.cloud/docs/installing/docker?_gl=1*f2xcnf*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMDIyMS40MS4xLjE2OTAzMTAzNjkuNTguMC4w#create-a-new-netdata-agent-container)
+ > Netdata will use the hostname from the container in which it is run instead of that of the host system. To change the default hostname check [here](https://learn.netdata.cloud/docs/agent/packaging/docker?_gl=1*i5weve*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMjM4Ny40Mi4xLjE2OTAzMTIzOTAuNTcuMC4w#change-the-default-hostname)
+ methods:
+ - method: Docker CLI
+ commands:
+ - channel: nightly
+ command: |
+ docker run -d --name=netdata \
+ --pid=host \
+ --network=host \
+ -v netdataconfig:/etc/netdata \
+ -v netdatalib:/var/lib/netdata \
+ -v netdatacache:/var/cache/netdata \
+ -v /etc/passwd:/host/etc/passwd:ro \
+ -v /etc/group:/host/etc/group:ro \
+ -v /proc:/host/proc:ro \
+ -v /sys:/host/sys:ro \
+ -v /etc/os-release:/host/etc/os-release:ro \
+ -v /var/run/docker.sock:/var/run/docker.sock:ro \
+ --restart unless-stopped \
+ --cap-add SYS_PTRACE \
+ --cap-add SYS_ADMIN \
+ --security-opt apparmor=unconfined \
+ {% if $showClaimingOptions %}
+ -e NETDATA_CLAIM_TOKEN={% claim_token %} \
+ -e NETDATA_CLAIM_URL={% claim_url %} \
+ -e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \
+ {% /if %}
+ netdata/netdata:edge
+ - channel: stable
+ command: |
+ docker run -d --name=netdata \
+ --pid=host \
+ --network=host \
+ -v netdataconfig:/etc/netdata \
+ -v netdatalib:/var/lib/netdata \
+ -v netdatacache:/var/cache/netdata \
+ -v /etc/passwd:/host/etc/passwd:ro \
+ -v /etc/group:/host/etc/group:ro \
+ -v /proc:/host/proc:ro \
+ -v /sys:/host/sys:ro \
+ -v /etc/os-release:/host/etc/os-release:ro \
+ -v /var/run/docker.sock:/var/run/docker.sock:ro \
+ --restart unless-stopped \
+ --cap-add SYS_PTRACE \
+ --cap-add SYS_ADMIN \
+ --security-opt apparmor=unconfined \
+ {% if $showClaimingOptions %}
+ -e NETDATA_CLAIM_TOKEN={% claim_token %} \
+ -e NETDATA_CLAIM_URL={% claim_url %} \
+ -e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \
+ {% /if %}
+ netdata/netdata:stable
+ - method: Docker Compose
+ commands:
+ - channel: nightly
+ command: |
+ version: '3'
+ services:
+ netdata:
+ image: netdata/netdata:edge
+ container_name: netdata
+ pid: host
+ network_mode: host
+ restart: unless-stopped
+ cap_add:
+ - SYS_PTRACE
+ - SYS_ADMIN
+ security_opt:
+ - apparmor:unconfined
+ volumes:
+ - netdataconfig:/etc/netdata
+ - netdatalib:/var/lib/netdata
+ - netdatacache:/var/cache/netdata
+ - /etc/passwd:/host/etc/passwd:ro
+ - /etc/group:/host/etc/group:ro
+ - /proc:/host/proc:ro
+ - /sys:/host/sys:ro
+ - /etc/os-release:/host/etc/os-release:ro
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ {% if $showClaimingOptions %}
+ environment:
+ - NETDATA_CLAIM_TOKEN={% claim_token %}
+ - NETDATA_CLAIM_URL={% claim_url %}
+ - NETDATA_CLAIM_ROOMS={% $claim_rooms %}
+ {% /if %}
+ volumes:
+ netdataconfig:
+ netdatalib:
+ netdatacache:
+ - channel: stable
+ command: |
+ version: '3'
+ services:
+ netdata:
+ image: netdata/netdata:stable
+ container_name: netdata
+ pid: host
+ network_mode: host
+ restart: unless-stopped
+ cap_add:
+ - SYS_PTRACE
+ - SYS_ADMIN
+ security_opt:
+ - apparmor:unconfined
+ volumes:
+ - netdataconfig:/etc/netdata
+ - netdatalib:/var/lib/netdata
+ - netdatacache:/var/cache/netdata
+ - /etc/passwd:/host/etc/passwd:ro
+ - /etc/group:/host/etc/group:ro
+ - /proc:/host/proc:ro
+ - /sys:/host/sys:ro
+ - /etc/os-release:/host/etc/os-release:ro
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ {% if $showClaimingOptions %}
+ environment:
+ - NETDATA_CLAIM_TOKEN={% claim_token %}
+ - NETDATA_CLAIM_URL={% claim_url %}
+ - NETDATA_CLAIM_ROOMS={% $claim_rooms %}
+ {% /if %}
+ volumes:
+ netdataconfig:
+ netdatalib:
+ netdatacache:
+ - method: Docker Swarm
+ commands:
+ - channel: nightly
+ command: |
+ version: '3'
+ services:
+ netdata:
+ image: netdata/netdata:edge
+ container_name: netdata
+ ports:
+ - 19999:19999
+ restart: unless-stopped
+ cap_add:
+ - SYS_PTRACE
+ security_opt:
+ - apparmor:unconfined
+ volumes:
+ - netdataconfig:/etc/netdata
+ - netdatalib:/var/lib/netdata
+ - netdatacache:/var/cache/netdata
+ - /etc/passwd:/host/etc/passwd:ro
+ - /etc/group:/host/etc/group:ro
+ - /proc:/host/proc:ro
+ - /sys:/host/sys:ro
+ - /etc/os-release:/host/etc/os-release:ro
+ - /etc/hostname:/etc/hostname:ro
+ {% if $showClaimingOptions %}
+ environment:
+ - NETDATA_CLAIM_TOKEN={% claim_token %}
+ - NETDATA_CLAIM_URL={% claim_url %}
+ - NETDATA_CLAIM_ROOMS={% $claim_rooms %}
+ {% /if %}
+ deploy:
+ mode: global
+ volumes:
+ netdataconfig:
+ netdatalib:
+ netdatacache:
+ - channel: stable
+ command: |
+ version: '3'
+ services:
+ netdata:
+ image: netdata/netdata:stable
+ container_name: netdata
+ ports:
+ - 19999:19999
+ restart: unless-stopped
+ cap_add:
+ - SYS_PTRACE
+ security_opt:
+ - apparmor:unconfined
+ volumes:
+ - netdataconfig:/etc/netdata
+ - netdatalib:/var/lib/netdata
+ - netdatacache:/var/cache/netdata
+ - /etc/passwd:/host/etc/passwd:ro
+ - /etc/group:/host/etc/group:ro
+ - /proc:/host/proc:ro
+ - /sys:/host/sys:ro
+ - /etc/os-release:/host/etc/os-release:ro
+ - /etc/hostname:/etc/hostname:ro
+ {% if $showClaimingOptions %}
+ environment:
+ - NETDATA_CLAIM_TOKEN={% claim_token %}
+ - NETDATA_CLAIM_URL={% claim_url %}
+ - NETDATA_CLAIM_ROOMS={% $claim_rooms %}
+ {% /if %}
+ deploy:
+ mode: global
+ volumes:
+ netdataconfig:
+ netdatalib:
+ netdatacache:
+ additional_info: ''
+ related_resources: {}
+ platform_info:
+ group: 'no_include'
+ distro: 'docker'
+ quick_start: 3
+- id: deploy-kubernetes
+ meta:
+ name: Kubernetes
+ link: ''
+ categories:
+ - deploy.docker-kubernetes
+ icon_filename: 'kubernetes.svg'
+ keywords:
+ - kubernetes
+ - container
+ - Orchestrator
+ install_description: |
+ **Use helm install to install Netdata on your Kubernetes cluster**
+ For a new installation use `helm install` or for existing clusters add the content below to your `override.yaml` and then run `helm upgrade -f override.yml netdata netdata/netdata`
+
+ methods:
+ - method: Helm
+ commands:
+ - channel: nightly
+ command: |
+ helm install netdata netdata/netdata \
+ --set image.tag=latest{% if $showClaimingOptions %} \
+ --set parent.claiming.enabled="true" \
+ --set parent.claiming.token={% claim_token %} \
+ --set parent.claiming.rooms={% $claim_rooms %} \
+ --set child.claiming.enabled="true" \
+ --set child.claiming.token={% claim_token %} \
+ --set child.claiming.rooms={% $claim_rooms %}{% /if %}
+ - channel: stable
+ command: |
+ helm install netdata netdata/netdata \
+ --set image.tag=stable{% if $showClaimingOptions %} \
+ --set parent.claiming.enabled="true" \
+ --set parent.claiming.token={% claim_token %} \
+ --set parent.claiming.rooms={% $claim_rooms %} \
+ --set child.claiming.enabled="true" \
+ --set child.claiming.token={% claim_token %} \
+ --set child.claiming.rooms={% $claim_rooms %}{% /if %}
+ - method: Existing Cluster
+ commands:
+ - channel: nightly
+ command: |
+ image:
+ tag: latest
+
+ restarter:
+ enabled: true
+ {% if $showClaimingOptions %}
+
+ parent:
+ claiming:
+ enabled: true
+ token: {% claim_token %}
+ rooms: {% $claim_rooms %}
+
+ child:
+ claiming:
+ enabled: true
+ token: {% claim_token %}
+ rooms: {% $claim_rooms %}
+ {% /if %}
+ - channel: stable
+ command: |
+ image:
+ tag: stable
+
+ restarter:
+ enabled: true
+ {% if $showClaimingOptions %}
+
+ parent:
+ claiming:
+ enabled: true
+ token: {% claim_token %}
+ rooms: {% $claim_rooms %}
+
+ child:
+ claiming:
+ enabled: true
+ token: {% claim_token %}
+ rooms: {% $claim_rooms %}
+ {% /if %}
+ additional_info: ''
+ related_resources: {}
+ most_popular: true
+ platform_info:
+ group: ''
+ distro: ''
+ quick_start: 4
+- id: deploy-windows
+ meta:
+ name: Windows
+ link: 'https://www.microsoft.com/en-us/windows'
+ categories:
+ - deploy.operating-systems
+ icon_filename: 'windows.svg'
+ keywords:
+ - windows
+ install_description: |
+ 1. Install [Windows Exporter](https://github.com/prometheus-community/windows_exporter) on every Windows host you want to monitor.
+ 2. Install Netdata agent on Linux, FreeBSD or Mac.
+ 3. Configure Netdata to collect data remotely from your Windows hosts by adding one job per host to windows.conf file. See the [configuration section](https://learn.netdata.cloud/docs/data-collection/monitor-anything/System%20Metrics/Windows-machines#configuration) for details.
+ 4. Enable [virtual nodes](https://learn.netdata.cloud/docs/data-collection/windows-systems#virtual-nodes) configuration so the windows nodes are displayed as separate nodes.
+ methods:
+ - *ks_wget
+ - *ks_curl
+ additional_info: ''
+ related_resources: {}
+ most_popular: true
+ platform_info:
+ group: ''
+ distro: ''
+ quick_start: 2
+- id: deploy-freebsd
+ meta:
+ name: FreeBSD
+ link: 'https://www.freebsd.org/'
+ categories:
+ - deploy.operating-systems
+ icon_filename: 'freebsd.svg'
+ most_popular: true
+ keywords:
+ - freebsd
+ install_description: |
+ ## Install dependencies
+ Please install the following packages using the command below:
+
+ ```pkg install bash e2fsprogs-libuuid git curl autoconf automake pkgconf pidof liblz4 libuv json-c cmake gmake```
+ This step needs root privileges. Please respond in the affirmative for any relevant prompts during the installation process.
+
+ Run the following command on your node to install and claim Netdata:
+ methods:
+ - *ks_curl
+ - method: fetch
+ commands:
+ - channel: nightly
+ command: >
+ fetch -o /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ - channel: stable
+ command: >
+ fetch -o /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh
+ --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}
+ additional_info: |
+ Netdata can also be installed via [FreeBSD ports](https://www.freshports.org/net-mgmt/netdata).
+ related_resources: {}
+ platform_info:
+ group: 'include'
+ distro: 'freebsd'
+ quick_start: 6
diff --git a/integrations/gen_integrations.py b/integrations/gen_integrations.py
new file mode 100755
index 000000000..19d71d8cc
--- /dev/null
+++ b/integrations/gen_integrations.py
@@ -0,0 +1,628 @@
+#!/usr/bin/env python3
+
+import json
+import os
+import sys
+
+from pathlib import Path
+
+from jsonschema import Draft7Validator, ValidationError
+from referencing import Registry, Resource
+from referencing.jsonschema import DRAFT7
+from ruamel.yaml import YAML, YAMLError
+
+AGENT_REPO = 'netdata/netdata'
+GO_REPO = 'netdata/go.d.plugin'
+
+INTEGRATIONS_PATH = Path(__file__).parent
+TEMPLATE_PATH = INTEGRATIONS_PATH / 'templates'
+OUTPUT_PATH = INTEGRATIONS_PATH / 'integrations.js'
+CATEGORIES_FILE = INTEGRATIONS_PATH / 'categories.yaml'
+REPO_PATH = INTEGRATIONS_PATH.parent
+SCHEMA_PATH = INTEGRATIONS_PATH / 'schemas'
+GO_REPO_PATH = REPO_PATH / 'go.d.plugin'
+DISTROS_FILE = REPO_PATH / '.github' / 'data' / 'distros.yml'
+METADATA_PATTERN = '*/metadata.yaml'
+
+COLLECTOR_SOURCES = [
+ (AGENT_REPO, REPO_PATH / 'collectors', True),
+ (AGENT_REPO, REPO_PATH / 'collectors' / 'charts.d.plugin', True),
+ (AGENT_REPO, REPO_PATH / 'collectors' / 'python.d.plugin', True),
+ (GO_REPO, GO_REPO_PATH / 'modules', True),
+]
+
+DEPLOY_SOURCES = [
+ (AGENT_REPO, INTEGRATIONS_PATH / 'deploy.yaml', False),
+]
+
+EXPORTER_SOURCES = [
+ (AGENT_REPO, REPO_PATH / 'exporting', True),
+]
+
+NOTIFICATION_SOURCES = [
+ (AGENT_REPO, REPO_PATH / 'health' / 'notifications', True),
+ (AGENT_REPO, INTEGRATIONS_PATH / 'cloud-notifications' / 'metadata.yaml', False),
+]
+
+COLLECTOR_RENDER_KEYS = [
+ 'alerts',
+ 'metrics',
+ 'overview',
+ 'related_resources',
+ 'setup',
+ 'troubleshooting',
+]
+
+EXPORTER_RENDER_KEYS = [
+ 'overview',
+ 'setup',
+ 'troubleshooting',
+]
+
+NOTIFICATION_RENDER_KEYS = [
+ 'overview',
+ 'setup',
+ 'troubleshooting',
+]
+
+GITHUB_ACTIONS = os.environ.get('GITHUB_ACTIONS', False)
+DEBUG = os.environ.get('DEBUG', False)
+
+
+def debug(msg):
+ if GITHUB_ACTIONS:
+ print(f':debug:{ msg }')
+ elif DEBUG:
+ print(f'>>> { msg }')
+ else:
+ pass
+
+
+def warn(msg, path):
+ if GITHUB_ACTIONS:
+ print(f':warning file={ path }:{ msg }')
+ else:
+ print(f'!!! WARNING:{ path }:{ msg }')
+
+
+def retrieve_from_filesystem(uri):
+ path = SCHEMA_PATH / Path(uri)
+ contents = json.loads(path.read_text())
+ return Resource.from_contents(contents, DRAFT7)
+
+
+registry = Registry(retrieve=retrieve_from_filesystem)
+
+CATEGORY_VALIDATOR = Draft7Validator(
+ {'$ref': './categories.json#'},
+ registry=registry,
+)
+
+DEPLOY_VALIDATOR = Draft7Validator(
+ {'$ref': './deploy.json#'},
+ registry=registry,
+)
+
+EXPORTER_VALIDATOR = Draft7Validator(
+ {'$ref': './exporter.json#'},
+ registry=registry,
+)
+
+NOTIFICATION_VALIDATOR = Draft7Validator(
+ {'$ref': './notification.json#'},
+ registry=registry,
+)
+
+COLLECTOR_VALIDATOR = Draft7Validator(
+ {'$ref': './collector.json#'},
+ registry=registry,
+)
+
+_jinja_env = False
+
+
+def get_jinja_env():
+ global _jinja_env
+
+ if not _jinja_env:
+ from jinja2 import Environment, FileSystemLoader, select_autoescape
+
+ _jinja_env = Environment(
+ loader=FileSystemLoader(TEMPLATE_PATH),
+ autoescape=select_autoescape(),
+ block_start_string='[%',
+ block_end_string='%]',
+ variable_start_string='[[',
+ variable_end_string=']]',
+ comment_start_string='[#',
+ comment_end_string='#]',
+ trim_blocks=True,
+ lstrip_blocks=True,
+ )
+
+ return _jinja_env
+
+
+def get_category_sets(categories):
+ default = set()
+ valid = set()
+
+ for c in categories:
+ if 'id' in c:
+ valid.add(c['id'])
+
+ if c.get('collector_default', False):
+ default.add(c['id'])
+
+ if 'children' in c and c['children']:
+ d, v = get_category_sets(c['children'])
+ default |= d
+ valid |= v
+
+ return (default, valid)
+
+
+def get_collector_metadata_entries():
+ ret = []
+
+ for r, d, m in COLLECTOR_SOURCES:
+ if d.exists() and d.is_dir() and m:
+ for item in d.glob(METADATA_PATTERN):
+ ret.append((r, item))
+ elif d.exists() and d.is_file() and not m:
+ if d.match(METADATA_PATTERN):
+ ret.append(d)
+
+ return ret
+
+
+def load_yaml(src):
+ yaml = YAML(typ='safe')
+
+ if not src.is_file():
+ warn(f'{ src } is not a file.', src)
+ return False
+
+ try:
+ contents = src.read_text()
+ except (IOError, OSError):
+ warn(f'Failed to read { src }.', src)
+ return False
+
+ try:
+ data = yaml.load(contents)
+ except YAMLError:
+ warn(f'Failed to parse { src } as YAML.', src)
+ return False
+
+ return data
+
+
+def load_categories():
+ categories = load_yaml(CATEGORIES_FILE)
+
+ if not categories:
+ sys.exit(1)
+
+ try:
+ CATEGORY_VALIDATOR.validate(categories)
+ except ValidationError:
+ warn(f'Failed to validate { CATEGORIES_FILE } against the schema.', CATEGORIES_FILE)
+ sys.exit(1)
+
+ return categories
+
+
+def load_collectors():
+ ret = []
+
+ entries = get_collector_metadata_entries()
+
+ for repo, path in entries:
+ debug(f'Loading { path }.')
+ data = load_yaml(path)
+
+ if not data:
+ continue
+
+ try:
+ COLLECTOR_VALIDATOR.validate(data)
+ except ValidationError:
+ warn(f'Failed to validate { path } against the schema.', path)
+ continue
+
+ for idx, item in enumerate(data['modules']):
+ item['meta']['plugin_name'] = data['plugin_name']
+ item['integration_type'] = 'collector'
+ item['_src_path'] = path
+ item['_repo'] = repo
+ item['_index'] = idx
+ ret.append(item)
+
+ return ret
+
+
+def _load_deploy_file(file, repo):
+ ret = []
+ debug(f'Loading { file }.')
+ data = load_yaml(file)
+
+ if not data:
+ return []
+
+ try:
+ DEPLOY_VALIDATOR.validate(data)
+ except ValidationError:
+ warn(f'Failed to validate { file } against the schema.', file)
+ return []
+
+ for idx, item in enumerate(data):
+ item['integration_type'] = 'deploy'
+ item['_src_path'] = file
+ item['_repo'] = repo
+ item['_index'] = idx
+ ret.append(item)
+
+ return ret
+
+
+def load_deploy():
+ ret = []
+
+ for repo, path, match in DEPLOY_SOURCES:
+ if match and path.exists() and path.is_dir():
+ for file in path.glob(METADATA_PATTERN):
+ ret.extend(_load_deploy_file(file, repo))
+ elif not match and path.exists() and path.is_file():
+ ret.extend(_load_deploy_file(path, repo))
+
+ return ret
+
+
+def _load_exporter_file(file, repo):
+ debug(f'Loading { file }.')
+ data = load_yaml(file)
+
+ if not data:
+ return []
+
+ try:
+ EXPORTER_VALIDATOR.validate(data)
+ except ValidationError:
+ warn(f'Failed to validate { file } against the schema.', file)
+ return []
+
+ if 'id' in data:
+ data['integration_type'] = 'exporter'
+ data['_src_path'] = file
+ data['_repo'] = repo
+ data['_index'] = 0
+
+ return [data]
+ else:
+ ret = []
+
+ for idx, item in enumerate(data):
+ item['integration_type'] = 'exporter'
+ item['_src_path'] = file
+ item['_repo'] = repo
+ item['_index'] = idx
+ ret.append(item)
+
+ return ret
+
+
+def load_exporters():
+ ret = []
+
+ for repo, path, match in EXPORTER_SOURCES:
+ if match and path.exists() and path.is_dir():
+ for file in path.glob(METADATA_PATTERN):
+ ret.extend(_load_exporter_file(file, repo))
+ elif not match and path.exists() and path.is_file():
+ ret.extend(_load_exporter_file(path, repo))
+
+ return ret
+
+
+def _load_notification_file(file, repo):
+ debug(f'Loading { file }.')
+ data = load_yaml(file)
+
+ if not data:
+ return []
+
+ try:
+ NOTIFICATION_VALIDATOR.validate(data)
+ except ValidationError:
+ warn(f'Failed to validate { file } against the schema.', file)
+ return []
+
+ if 'id' in data:
+ data['integration_type'] = 'notification'
+ data['_src_path'] = file
+ data['_repo'] = repo
+ data['_index'] = 0
+
+ return [data]
+ else:
+ ret = []
+
+ for idx, item in enumerate(data):
+ item['integration_type'] = 'notification'
+ item['_src_path'] = file
+ item['_repo'] = repo
+ item['_index'] = idx
+ ret.append(item)
+
+ return ret
+
+
+def load_notifications():
+ ret = []
+
+ for repo, path, match in NOTIFICATION_SOURCES:
+ if match and path.exists() and path.is_dir():
+ for file in path.glob(METADATA_PATTERN):
+ ret.extend(_load_notification_file(file, repo))
+ elif not match and path.exists() and path.is_file():
+ ret.extend(_load_notification_file(path, repo))
+
+ return ret
+
+
+def make_id(meta):
+ if 'monitored_instance' in meta:
+ instance_name = meta['monitored_instance']['name'].replace(' ', '_')
+ elif 'instance_name' in meta:
+ instance_name = meta['instance_name']
+ else:
+ instance_name = '000_unknown'
+
+ return f'{ meta["plugin_name"] }-{ meta["module_name"] }-{ instance_name }'
+
+
+def make_edit_link(item):
+ if item['_repo'] == 'netdata/go.d.plugin':
+ item_path = item['_src_path'].relative_to(GO_REPO_PATH)
+ else:
+ item_path = item['_src_path'].relative_to(REPO_PATH)
+
+ return f'https://github.com/{ item["_repo"] }/blob/master/{ item_path }'
+
+
+def sort_integrations(integrations):
+ integrations.sort(key=lambda i: i['_index'])
+ integrations.sort(key=lambda i: i['_src_path'])
+ integrations.sort(key=lambda i: i['id'])
+
+
+def dedupe_integrations(integrations, ids):
+ tmp_integrations = []
+
+ for i in integrations:
+ if ids.get(i['id'], False):
+ first_path, first_index = ids[i['id']]
+ warn(f'Duplicate integration ID found at { i["_src_path"] } index { i["_index"] } (original definition at { first_path } index { first_index }), ignoring that integration.', i['_src_path'])
+ else:
+ tmp_integrations.append(i)
+ ids[i['id']] = (i['_src_path'], i['_index'])
+
+ return tmp_integrations, ids
+
+
+def render_collectors(categories, collectors, ids):
+ debug('Computing default categories.')
+
+ default_cats, valid_cats = get_category_sets(categories)
+
+ debug('Generating collector IDs.')
+
+ for item in collectors:
+ item['id'] = make_id(item['meta'])
+
+ debug('Sorting collectors.')
+
+ sort_integrations(collectors)
+
+ debug('Removing duplicate collectors.')
+
+ collectors, ids = dedupe_integrations(collectors, ids)
+
+ idmap = {i['id']: i for i in collectors}
+
+ for item in collectors:
+ debug(f'Processing { item["id"] }.')
+
+ related = []
+
+ for res in item['meta']['related_resources']['integrations']['list']:
+ res_id = make_id(res)
+
+ if res_id not in idmap.keys():
+ warn(f'Could not find related integration { res_id }, ignoring it.', item['_src_path'])
+ continue
+
+ related.append({
+ 'plugin_name': res['plugin_name'],
+ 'module_name': res['module_name'],
+ 'id': res_id,
+ 'name': idmap[res_id]['meta']['monitored_instance']['name'],
+ 'info': idmap[res_id]['meta']['info_provided_to_referring_integrations'],
+ })
+
+ item_cats = set(item['meta']['monitored_instance']['categories'])
+ bogus_cats = item_cats - valid_cats
+ actual_cats = item_cats & valid_cats
+
+ if bogus_cats:
+ warn(f'Ignoring invalid categories: { ", ".join(bogus_cats) }', item["_src_path"])
+
+ if not item_cats:
+ item['meta']['monitored_instance']['categories'] = list(default_cats)
+ warn(f'{ item["id"] } does not list any caregories, adding it to: { default_cats }', item["_src_path"])
+ else:
+ item['meta']['monitored_instance']['categories'] = list(actual_cats)
+
+ for scope in item['metrics']['scopes']:
+ if scope['name'] == 'global':
+ scope['name'] = f'{ item["meta"]["monitored_instance"]["name"] } instance'
+
+ for cfg_example in item['setup']['configuration']['examples']['list']:
+ if 'folding' not in cfg_example:
+ cfg_example['folding'] = {
+ 'enabled': item['setup']['configuration']['examples']['folding']['enabled']
+ }
+
+ for key in COLLECTOR_RENDER_KEYS:
+ if key in item.keys():
+ template = get_jinja_env().get_template(f'{ key }.md')
+ data = template.render(entry=item, related=related)
+
+ if 'variables' in item['meta']['monitored_instance']:
+ template = get_jinja_env().from_string(data)
+ data = template.render(variables=item['meta']['monitored_instance']['variables'])
+ else:
+ data = ''
+
+ item[key] = data
+
+ item['edit_link'] = make_edit_link(item)
+
+ del item['_src_path']
+ del item['_repo']
+ del item['_index']
+
+ return collectors, ids
+
+
+def render_deploy(distros, categories, deploy, ids):
+ debug('Sorting deployments.')
+
+ sort_integrations(deploy)
+
+ debug('Checking deployment ids.')
+
+ deploy, ids = dedupe_integrations(deploy, ids)
+
+ template = get_jinja_env().get_template('platform_info.md')
+
+ for item in deploy:
+ debug(f'Processing { item["id"] }.')
+
+ if item['platform_info']['group']:
+ entries = [
+ {
+ 'version': i['version'],
+ 'support': i['support_type'],
+ 'arches': i.get('packages', {'arches': []})['arches'],
+ 'notes': i['notes'],
+ } for i in distros[item['platform_info']['group']] if i['distro'] == item['platform_info']['distro']
+ ]
+ else:
+ entries = []
+
+ data = template.render(entries=entries)
+
+ item['platform_info'] = data
+ item['edit_link'] = make_edit_link(item)
+
+ del item['_src_path']
+ del item['_repo']
+ del item['_index']
+
+ return deploy, ids
+
+
+def render_exporters(categories, exporters, ids):
+ debug('Sorting exporters.')
+
+ sort_integrations(exporters)
+
+ debug('Checking exporter ids.')
+
+ exporters, ids = dedupe_integrations(exporters, ids)
+
+ for item in exporters:
+ for key in EXPORTER_RENDER_KEYS:
+ if key in item.keys():
+ template = get_jinja_env().get_template(f'{ key }.md')
+ data = template.render(entry=item)
+
+ if 'variables' in item['meta']:
+ template = get_jinja_env().from_string(data)
+ data = template.render(variables=item['meta']['variables'])
+ else:
+ data = ''
+
+ item[key] = data
+
+ item['edit_link'] = make_edit_link(item)
+
+ del item['_src_path']
+ del item['_repo']
+ del item['_index']
+
+ return exporters, ids
+
+
+def render_notifications(categories, notifications, ids):
+ debug('Sorting notifications.')
+
+ sort_integrations(notifications)
+
+ debug('Checking notification ids.')
+
+ notifications, ids = dedupe_integrations(notifications, ids)
+
+ for item in notifications:
+ for key in NOTIFICATION_RENDER_KEYS:
+ if key in item.keys():
+ template = get_jinja_env().get_template(f'{ key }.md')
+ data = template.render(entry=item)
+
+ if 'variables' in item['meta']:
+ template = get_jinja_env().from_string(data)
+ data = template.render(variables=item['meta']['variables'])
+ else:
+ data = ''
+
+ item[key] = data
+
+ item['edit_link'] = make_edit_link(item)
+
+ del item['_src_path']
+ del item['_repo']
+ del item['_index']
+
+ return notifications, ids
+
+
+def render_integrations(categories, integrations):
+ template = get_jinja_env().get_template('integrations.js')
+ data = template.render(
+ categories=json.dumps(categories),
+ integrations=json.dumps(integrations),
+ )
+ OUTPUT_PATH.write_text(data)
+
+
+def main():
+ categories = load_categories()
+ distros = load_yaml(DISTROS_FILE)
+ collectors = load_collectors()
+ deploy = load_deploy()
+ exporters = load_exporters()
+ notifications = load_notifications()
+
+ collectors, ids = render_collectors(categories, collectors, dict())
+ deploy, ids = render_deploy(distros, categories, deploy, ids)
+ exporters, ids = render_exporters(categories, exporters, ids)
+ notifications, ids = render_notifications(categories, notifications, ids)
+
+ integrations = collectors + deploy + exporters + notifications
+ render_integrations(categories, integrations)
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/integrations/integrations.js b/integrations/integrations.js
new file mode 100644
index 000000000..1b535f49e
--- /dev/null
+++ b/integrations/integrations.js
@@ -0,0 +1,5 @@
+// DO NOT EDIT THIS FILE DIRECTLY
+// It gets generated by integrations/gen_integrations.py in the Netdata repo
+
+export const categories = [{"id": "deploy", "name": "Deploy", "description": "", "most_popular": true, "priority": 1, "children": [{"id": "deploy.operating-systems", "name": "Operating Systems", "description": "", "most_popular": true, "priority": 1, "children": []}, {"id": "deploy.docker-kubernetes", "name": "Docker & Kubernetes", "description": "", "most_popular": true, "priority": 2, "children": []}, {"id": "deploy.provisioning-systems", "parent": "deploy", "name": "Provisioning Systems", "description": "", "most_popular": false, "priority": -1, "children": []}]}, {"id": "data-collection", "name": "Data Collection", "description": "", "most_popular": true, "priority": 2, "children": [{"id": "data-collection.other", "name": "Other", "description": "", "most_popular": false, "priority": -1, "collector_default": true, "children": []}, {"id": "data-collection.ebpf", "name": "eBPF", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.freebsd", "name": "FreeBSD", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.containers-and-vms", "name": "Containers and VMs", "description": "", "most_popular": true, "priority": 6, "children": []}, {"id": "data-collection.database-servers", "name": "Databases", "description": "", "most_popular": true, "priority": 1, "children": []}, {"id": "data-collection.kubernetes", "name": "Kubernetes", "description": "", "most_popular": true, "priority": 7, "children": []}, {"id": "data-collection.notifications", "name": "Incident Management", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.service-discovery-registry", "name": "Service Discovery / Registry", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.web-servers-and-web-proxies", "name": "Web Servers and Web Proxies", "description": "", "most_popular": true, "priority": 2, "children": []}, {"id": "data-collection.cloud-provider-managed", "name": "Cloud Provider Managed", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.windows-systems", "name": "Windows Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.apm", "name": "APM", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.hardware-devices-and-sensors", "name": "Hardware Devices and Sensors", "description": "", "most_popular": true, "priority": 4, "children": []}, {"id": "data-collection.macos-systems", "name": "macOS Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.message-brokers", "name": "Message Brokers", "description": "", "most_popular": true, "priority": 3, "children": []}, {"id": "data-collection.provisioning-systems", "name": "Provisioning Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.search-engines", "name": "Search Engines", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems", "name": "Linux Systems", "description": "", "most_popular": true, "priority": 5, "children": [{"id": "data-collection.linux-systems.system-metrics", "name": "System", "description": "", "most_popular": true, "priority": 1, "children": []}, {"id": "data-collection.linux-systems.memory-metrics", "name": "Memory", "description": "", "most_popular": true, "priority": 3, "children": []}, {"id": "data-collection.linux-systems.cpu-metrics", "name": "CPU", "description": "", "most_popular": true, "priority": 2, "children": []}, {"id": "data-collection.linux-systems.pressure-metrics", "name": "Pressure", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.network-metrics", "name": "Network", "description": "", "most_popular": true, "priority": 5, "children": []}, {"id": "data-collection.linux-systems.ipc-metrics", "name": "IPC", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.disk-metrics", "name": "Disk", "description": "", "most_popular": true, "priority": 4, "children": []}, {"id": "data-collection.linux-systems.firewall-metrics", "name": "Firewall", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.power-supply-metrics", "name": "Power Supply", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.filesystem-metrics", "name": "Filesystem", "description": "", "most_popular": false, "priority": -1, "children": [{"id": "data-collection.linux-systems.filesystem-metrics.zfs", "name": "ZFS", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.filesystem-metrics.btrfs", "name": "BTRFS", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.linux-systems.filesystem-metrics.nfs", "name": "NFS", "description": "", "most_popular": false, "priority": -1, "children": []}]}, {"id": "data-collection.linux-systems.kernel-metrics", "name": "Kernel", "description": "", "most_popular": false, "priority": -1, "children": []}]}, {"id": "data-collection.networking-stack-and-network-interfaces", "name": "Networking Stack and Network Interfaces", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.synthetic-checks", "name": "Synthetic Checks", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.ci-cd-systems", "name": "CI/CD Platforms", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.ups", "name": "UPS", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.freebsd-systems", "name": "FreeBSD Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.logs-servers", "name": "Logs Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.security-systems", "name": "Security Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.observability", "name": "Observability", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.gaming", "name": "Gaming", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.iot-devices", "name": "IoT Devices", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.media-streaming-servers", "name": "Media Services", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.authentication-and-authorization", "name": "Authentication and Authorization", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.project-management", "name": "Project Management", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.application-servers", "name": "Application Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.dns-and-dhcp-servers", "name": "DNS and DHCP Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.mail-servers", "name": "Mail Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.processes-and-system-services", "name": "Processes and System Services", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.storage-mount-points-and-filesystems", "name": "Storage, Mount Points and Filesystems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.systemd", "name": "Systemd", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.telephony-servers", "name": "Telephony Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.vpns", "name": "VPNs", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.blockchain-servers", "name": "Blockchain Servers", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.distributed-computing-systems", "name": "Distributed Computing Systems", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.generic-data-collection", "name": "Generic Data Collection", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.p2p", "name": "P2P", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.snmp-and-networked-devices", "name": "SNMP and Networked Devices", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.system-clock-and-ntp", "name": "System Clock and NTP", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.nas", "name": "NAS", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.api-gateways", "name": "API Gateways", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.task-queues", "name": "Task Queues", "description": "", "most_popular": false, "priority": -1, "children": []}, {"id": "data-collection.ftp-servers", "name": "FTP Servers", "description": "", "most_popular": false, "priority": -1, "children": []}]}, {"id": "export", "name": "exporters", "description": "Exporter Integrations", "most_popular": true, "priority": 4, "children": []}, {"id": "notify", "name": "notifications", "description": "Notification Integrations", "most_popular": true, "priority": 3, "children": [{"id": "notify.agent", "name": "Agent Dispatched Notifications", "description": "", "most_popular": true, "priority": 2, "children": []}, {"id": "notify.cloud", "name": "Centralized Cloud Notifications", "description": "", "most_popular": true, "priority": 1, "children": []}]}]
+export const integrations = [{"meta": {"plugin_name": "apps.plugin", "module_name": "apps", "monitored_instance": {"name": "Applications", "link": "", "categories": ["data-collection.processes-and-system-services"], "icon_filename": "applications.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["applications", "processes", "os", "host monitoring"], "most_popular": false}, "overview": "# Applications\n\n## Overview\n\nMonitor Applications for optimal software performance and resource usage.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Applications instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.cpu | a dimension per app group | percentage |\n| apps.cpu_user | a dimension per app group | percentage |\n| apps.cpu_system | a dimension per app group | percentage |\n| apps.cpu_guest | a dimension per app group | percentage |\n| apps.mem | a dimension per app group | MiB |\n| apps.rss | a dimension per app group | MiB |\n| apps.vmem | a dimension per app group | MiB |\n| apps.swap | a dimension per app group | MiB |\n| apps.major_faults | a dimension per app group | page faults/s |\n| apps.minor_faults | a dimension per app group | page faults/s |\n| apps.preads | a dimension per app group | KiB/s |\n| apps.pwrites | a dimension per app group | KiB/s |\n| apps.lreads | a dimension per app group | KiB/s |\n| apps.lwrites | a dimension per app group | KiB/s |\n| apps.threads | a dimension per app group | threads |\n| apps.processes | a dimension per app group | processes |\n| apps.voluntary_ctxt_switches | a dimension per app group | processes |\n| apps.involuntary_ctxt_switches | a dimension per app group | processes |\n| apps.uptime | a dimension per app group | seconds |\n| apps.uptime_min | a dimension per app group | seconds |\n| apps.uptime_avg | a dimension per app group | seconds |\n| apps.uptime_max | a dimension per app group | seconds |\n| apps.files | a dimension per app group | open files |\n| apps.sockets | a dimension per app group | open sockets |\n| apps.pipes | a dimension per app group | open pipes |\n\n", "integration_type": "collector", "id": "apps.plugin-apps-Applications", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/apps.plugin/metadata.yaml"}, {"meta": {"plugin_name": "apps.plugin", "module_name": "groups", "monitored_instance": {"name": "User Groups", "link": "", "categories": ["data-collection.processes-and-system-services"], "icon_filename": "user.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["groups", "processes", "user auditing", "authorization", "os", "host monitoring"], "most_popular": false}, "overview": "# User Groups\n\n## Overview\n\nThis integration monitors resource utilization on a user groups context.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per User Groups instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| groups.cpu | a dimension per user group | percentage |\n| groups.cpu_user | a dimension per user group | percentage |\n| groups.cpu_system | a dimension per user group | percentage |\n| groups.cpu_guest | a dimension per user group | percentage |\n| groups.mem | a dimension per user group | MiB |\n| groups.rss | a dimension per user group | MiB |\n| groups.vmem | a dimension per user group | MiB |\n| groups.swap | a dimension per user group | MiB |\n| groups.major_faults | a dimension per user group | page faults/s |\n| groups.minor_faults | a dimension per user group | page faults/s |\n| groups.preads | a dimension per user group | KiB/s |\n| groups.pwrites | a dimension per user group | KiB/s |\n| groups.lreads | a dimension per user group | KiB/s |\n| groups.lwrites | a dimension per user group | KiB/s |\n| groups.threads | a dimension per user group | threads |\n| groups.processes | a dimension per user group | processes |\n| groups.voluntary_ctxt_switches | a dimension per app group | processes |\n| groups.involuntary_ctxt_switches | a dimension per app group | processes |\n| groups.uptime | a dimension per user group | seconds |\n| groups.uptime_min | a dimension per user group | seconds |\n| groups.uptime_avg | a dimension per user group | seconds |\n| groups.uptime_max | a dimension per user group | seconds |\n| groups.files | a dimension per user group | open files |\n| groups.sockets | a dimension per user group | open sockets |\n| groups.pipes | a dimension per user group | open pipes |\n\n", "integration_type": "collector", "id": "apps.plugin-groups-User_Groups", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/apps.plugin/metadata.yaml"}, {"meta": {"plugin_name": "apps.plugin", "module_name": "users", "monitored_instance": {"name": "Users", "link": "", "categories": ["data-collection.processes-and-system-services"], "icon_filename": "users.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["users", "processes", "os", "host monitoring"], "most_popular": false}, "overview": "# Users\n\n## Overview\n\nThis integration monitors resource utilization on a user context.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Users instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| users.cpu | a dimension per user | percentage |\n| users.cpu_user | a dimension per user | percentage |\n| users.cpu_system | a dimension per user | percentage |\n| users.cpu_guest | a dimension per user | percentage |\n| users.mem | a dimension per user | MiB |\n| users.rss | a dimension per user | MiB |\n| users.vmem | a dimension per user | MiB |\n| users.swap | a dimension per user | MiB |\n| users.major_faults | a dimension per user | page faults/s |\n| users.minor_faults | a dimension per user | page faults/s |\n| users.preads | a dimension per user | KiB/s |\n| users.pwrites | a dimension per user | KiB/s |\n| users.lreads | a dimension per user | KiB/s |\n| users.lwrites | a dimension per user | KiB/s |\n| users.threads | a dimension per user | threads |\n| users.processes | a dimension per user | processes |\n| users.voluntary_ctxt_switches | a dimension per app group | processes |\n| users.involuntary_ctxt_switches | a dimension per app group | processes |\n| users.uptime | a dimension per user | seconds |\n| users.uptime_min | a dimension per user | seconds |\n| users.uptime_avg | a dimension per user | seconds |\n| users.uptime_max | a dimension per user | seconds |\n| users.files | a dimension per user | open files |\n| users.sockets | a dimension per user | open sockets |\n| users.pipes | a dimension per user | open pipes |\n\n", "integration_type": "collector", "id": "apps.plugin-users-Users", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/apps.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Containers", "link": "", "categories": ["data-collection.containers-and-vms"], "icon_filename": "container.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["containers"], "most_popular": true}, "overview": "# Containers\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Kubernetes Containers", "link": "https://kubernetes.io/", "icon_filename": "kubernetes.svg", "categories": ["data-collection.kubernetes", "data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["k8s", "kubernetes", "pods", "containers"], "most_popular": true}, "overview": "# Kubernetes Containers\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ k8s_cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | k8s.cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ k8s_cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | k8s.cgroup.mem_usage | cgroup memory utilization |\n| [ k8s_cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | k8s.cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ k8s_cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | k8s.cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per k8s cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_namespace | TBD |\n| k8s_pod_name | TBD |\n| k8s_pod_uid | TBD |\n| k8s_controller_kind | TBD |\n| k8s_controller_name | TBD |\n| k8s_node_name | TBD |\n| k8s_container_name | TBD |\n| k8s_container_id | TBD |\n| k8s_kind | TBD |\n| k8s_qos_class | TBD |\n| k8s_cluster_id | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s.cgroup.cpu_limit | used | percentage |\n| k8s.cgroup.cpu | user, system | percentage |\n| k8s.cgroup.cpu_per_core | a dimension per core | percentage |\n| k8s.cgroup.throttled | throttled | percentage |\n| k8s.cgroup.throttled_duration | duration | ms |\n| k8s.cgroup.cpu_shares | shares | shares |\n| k8s.cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| k8s.cgroup.writeback | dirty, writeback | MiB |\n| k8s.cgroup.mem_activity | in, out | MiB/s |\n| k8s.cgroup.pgfaults | pgfault, swap | MiB/s |\n| k8s.cgroup.mem_usage | ram, swap | MiB |\n| k8s.cgroup.mem_usage_limit | available, used | MiB |\n| k8s.cgroup.mem_utilization | utilization | percentage |\n| k8s.cgroup.mem_failcnt | failures | count |\n| k8s.cgroup.io | read, write | KiB/s |\n| k8s.cgroup.serviced_ops | read, write | operations/s |\n| k8s.cgroup.throttle_io | read, write | KiB/s |\n| k8s.cgroup.throttle_serviced_ops | read, write | operations/s |\n| k8s.cgroup.queued_ops | read, write | operations |\n| k8s.cgroup.merged_ops | read, write | operations/s |\n| k8s.cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.cpu_some_pressure_stall_time | time | ms |\n| k8s.cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.cpu_full_pressure_stall_time | time | ms |\n| k8s.cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.memory_some_pressure_stall_time | time | ms |\n| k8s.cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.memory_full_pressure_stall_time | time | ms |\n| k8s.cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.io_some_pressure_stall_time | time | ms |\n| k8s.cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| k8s.cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per k8s cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n| interface_type | TBD |\n| k8s_namespace | TBD |\n| k8s_pod_name | TBD |\n| k8s_pod_uid | TBD |\n| k8s_controller_kind | TBD |\n| k8s_controller_name | TBD |\n| k8s_node_name | TBD |\n| k8s_container_name | TBD |\n| k8s_container_id | TBD |\n| k8s_kind | TBD |\n| k8s_qos_class | TBD |\n| k8s_cluster_id | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s.cgroup.net_net | received, sent | kilobits/s |\n| k8s.cgroup.net_packets | received, sent, multicast | pps |\n| k8s.cgroup.net_errors | inbound, outbound | errors/s |\n| k8s.cgroup.net_drops | inbound, outbound | errors/s |\n| k8s.cgroup.net_fifo | receive, transmit | errors/s |\n| k8s.cgroup.net_compressed | receive, sent | pps |\n| k8s.cgroup.net_events | frames, collisions, carrier | events/s |\n| k8s.cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| k8s.cgroup.net_carrier | up, down | state |\n| k8s.cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Kubernetes_Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "LXC Containers", "link": "", "icon_filename": "lxc.png", "categories": ["data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["lxc", "lxd", "container"], "most_popular": true}, "overview": "# LXC Containers\n\n## Overview\n\nMonitor LXC Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-LXC_Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Libvirt Containers", "link": "", "icon_filename": "libvirt.png", "categories": ["data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["libvirt", "container"], "most_popular": true}, "overview": "# Libvirt Containers\n\n## Overview\n\nMonitor Libvirt for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Libvirt_Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Proxmox Containers", "link": "", "icon_filename": "proxmox.png", "categories": ["data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["proxmox", "container"], "most_popular": true}, "overview": "# Proxmox Containers\n\n## Overview\n\nMonitor Proxmox for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Proxmox_Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Systemd Services", "link": "", "icon_filename": "systemd.svg", "categories": ["data-collection.systemd"], "keywords": ["systemd", "services"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["containers"], "most_popular": true}, "overview": "# Systemd Services\n\n## Overview\n\nMonitor Containers for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Systemd Services instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| services.cpu | a dimension per systemd service | percentage |\n| services.mem_usage | a dimension per systemd service | MiB |\n| services.mem_rss | a dimension per systemd service | MiB |\n| services.mem_mapped | a dimension per systemd service | MiB |\n| services.mem_cache | a dimension per systemd service | MiB |\n| services.mem_writeback | a dimension per systemd service | MiB |\n| services.mem_pgfault | a dimension per systemd service | MiB/s |\n| services.mem_pgmajfault | a dimension per systemd service | MiB/s |\n| services.mem_pgpgin | a dimension per systemd service | MiB/s |\n| services.mem_pgpgout | a dimension per systemd service | MiB/s |\n| services.mem_failcnt | a dimension per systemd service | failures |\n| services.swap_usage | a dimension per systemd service | MiB |\n| services.io_read | a dimension per systemd service | KiB/s |\n| services.io_write | a dimension per systemd service | KiB/s |\n| services.io_ops_read | a dimension per systemd service | operations/s |\n| services.io_ops_write | a dimension per systemd service | operations/s |\n| services.throttle_io_read | a dimension per systemd service | KiB/s |\n| services.services.throttle_io_write | a dimension per systemd service | KiB/s |\n| services.throttle_io_ops_read | a dimension per systemd service | operations/s |\n| throttle_io_ops_write | a dimension per systemd service | operations/s |\n| services.queued_io_ops_read | a dimension per systemd service | operations/s |\n| services.queued_io_ops_write | a dimension per systemd service | operations/s |\n| services.merged_io_ops_read | a dimension per systemd service | operations/s |\n| services.merged_io_ops_write | a dimension per systemd service | operations/s |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Systemd_Services", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "Virtual Machines", "link": "", "icon_filename": "container.svg", "categories": ["data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["vms", "virtualization", "container"], "most_popular": true}, "overview": "# Virtual Machines\n\n## Overview\n\nMonitor Virtual Machines for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-Virtual_Machines", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "cgroups.plugin", "module_name": "/sys/fs/cgroup", "monitored_instance": {"name": "oVirt Containers", "link": "", "icon_filename": "ovirt.svg", "categories": ["data-collection.containers-and-vms"]}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ovirt", "container"], "most_popular": true}, "overview": "# oVirt Containers\n\n## Overview\n\nMonitor oVirt for performance, resource usage, and health status.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cgroup_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.cpu_limit | average cgroup CPU utilization over the last 10 minutes |\n| [ cgroup_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.mem_usage | cgroup memory utilization |\n| [ cgroup_1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ cgroup_10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/cgroups.conf) | cgroup.net_packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cpu_limit | used | percentage |\n| cgroup.cpu | user, system | percentage |\n| cgroup.cpu_per_core | a dimension per core | percentage |\n| cgroup.throttled | throttled | percentage |\n| cgroup.throttled_duration | duration | ms |\n| cgroup.cpu_shares | shares | shares |\n| cgroup.mem | cache, rss, swap, rss_huge, mapped_file | MiB |\n| cgroup.writeback | dirty, writeback | MiB |\n| cgroup.mem_activity | in, out | MiB/s |\n| cgroup.pgfaults | pgfault, swap | MiB/s |\n| cgroup.mem_usage | ram, swap | MiB |\n| cgroup.mem_usage_limit | available, used | MiB |\n| cgroup.mem_utilization | utilization | percentage |\n| cgroup.mem_failcnt | failures | count |\n| cgroup.io | read, write | KiB/s |\n| cgroup.serviced_ops | read, write | operations/s |\n| cgroup.throttle_io | read, write | KiB/s |\n| cgroup.throttle_serviced_ops | read, write | operations/s |\n| cgroup.queued_ops | read, write | operations |\n| cgroup.merged_ops | read, write | operations/s |\n| cgroup.cpu_some_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_some_pressure_stall_time | time | ms |\n| cgroup.cpu_full_pressure | some10, some60, some300 | percentage |\n| cgroup.cpu_full_pressure_stall_time | time | ms |\n| cgroup.memory_some_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_some_pressure_stall_time | time | ms |\n| cgroup.memory_full_pressure | some10, some60, some300 | percentage |\n| cgroup.memory_full_pressure_stall_time | time | ms |\n| cgroup.io_some_pressure | some10, some60, some300 | percentage |\n| cgroup.io_some_pressure_stall_time | time | ms |\n| cgroup.io_full_pressure | some10, some60, some300 | percentage |\n| cgroup.io_full_pressure_stall_time | time | ms |\n\n### Per cgroup network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | TBD |\n| image | TBD |\n| device | TBD |\n| interface_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_net | received, sent | kilobits/s |\n| cgroup.net_packets | received, sent, multicast | pps |\n| cgroup.net_errors | inbound, outbound | errors/s |\n| cgroup.net_drops | inbound, outbound | errors/s |\n| cgroup.net_fifo | receive, transmit | errors/s |\n| cgroup.net_compressed | receive, sent | pps |\n| cgroup.net_events | frames, collisions, carrier | events/s |\n| cgroup.net_operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| cgroup.net_carrier | up, down | state |\n| cgroup.net_mtu | mtu | octets |\n\n", "integration_type": "collector", "id": "cgroups.plugin-/sys/fs/cgroup-oVirt_Containers", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cgroups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "ap", "monitored_instance": {"name": "Access Points", "link": "https://learn.netdata.cloud/docs/data-collection/networking-stack-and-network-interfaces/linux-access-points", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ap", "access", "point", "wireless", "network"], "most_popular": false}, "overview": "# Access Points\n\n## Overview\n\nThe ap collector visualizes data related to wireless access points.\n\nIt uses the `iw` command line utility to detect access points. For each interface that is of `type AP`, it then runs `iw INTERFACE station dump` and collects statistics.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin is able to auto-detect if you are running access points on your linux box.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### `iw` utility.\n\nMake sure the `iw` utility is installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/ap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/ap.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the ap collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ap_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| ap_priority | Controls the order of charts at the netdata dashboard. | | False |\n| ap_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n\n{% /details %}\n#### Examples\n\n##### Change the collection frequency\n\nSpecify a custom collection frequence (update_every) for this collector\n\n```yaml\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\nap_update_every=10\n\n# the charts priority on the dashboard\n#ap_priority=6900\n\n# the number of retries to do in case of failure\n# before disabling the module\n#ap_retries=10\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ap` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 ap\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per wireless device\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ap.clients | clients | clients |\n| ap.net | received, sent | kilobits/s |\n| ap.packets | received, sent | packets/s |\n| ap.issues | retries, failures | issues/s |\n| ap.signal | average signal | dBm |\n| ap.bitrate | receive, transmit, expected | Mbps |\n\n", "integration_type": "collector", "id": "charts.d.plugin-ap-Access_Points", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/ap/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "apcupsd", "monitored_instance": {"name": "APC UPS", "link": "https://www.apc.com", "categories": ["data-collection.ups"], "icon_filename": "apc.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ups", "apc", "power", "supply", "battery", "apcupsd"], "most_popular": false}, "overview": "# APC UPS\n\n## Overview\n\nMonitor APC UPS performance with Netdata for optimal uninterruptible power supply operations. Enhance your power supply reliability with real-time APC UPS metrics.\n\nThe collector uses the `apcaccess` tool to contact the `apcupsd` daemon and get the APC UPS statistics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, with no configuration provided, the collector will try to contact 127.0.0.1:3551 with using the `apcaccess` utility.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required software\n\nMake sure the `apcaccess` and `apcupsd` are installed and running.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/apcupsd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/apcupsd.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the apcupsd collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| apcupsd_sources | This is an array of apcupsd sources. You can have multiple entries there. Please refer to the example below on how to set it. | | False |\n| apcupsd_timeout | How long to wait for apcupsd to respond. | | False |\n| apcupsd_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| apcupsd_priority | The charts priority on the dashboard. | | False |\n| apcupsd_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n\n{% /details %}\n#### Examples\n\n##### Multiple apcupsd sources\n\nSpecify a multiple apcupsd sources along with a custom update interval\n\n```yaml\n# add all your APC UPSes in this array - uncomment it too\ndeclare -A apcupsd_sources=(\n [\"local\"]=\"127.0.0.1:3551\",\n [\"remote\"]=\"1.2.3.4:3551\"\n)\n\n# how long to wait for apcupsd to respond\n#apcupsd_timeout=3\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\napcupsd_update_every=5\n\n# the charts priority on the dashboard\n#apcupsd_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#apcupsd_retries=10\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apcupsd` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 apcupsd\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ apcupsd_ups_charge ](https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf) | apcupsd.charge | average UPS charge over the last minute |\n| [ apcupsd_10min_ups_load ](https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf) | apcupsd.load | average UPS load over the last 10 minutes |\n| [ apcupsd_last_collected_secs ](https://github.com/netdata/netdata/blob/master/health/health.d/apcupsd.conf) | apcupsd.load | number of seconds since the last successful data collection |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ups\n\nMetrics related to UPS. Each UPS provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apcupsd.charge | charge | percentage |\n| apcupsd.battery.voltage | voltage, nominal | Volts |\n| apcupsd.input.voltage | voltage, min, max | Volts |\n| apcupsd.output.voltage | absolute, nominal | Volts |\n| apcupsd.input.frequency | frequency | Hz |\n| apcupsd.load | load | percentage |\n| apcupsd.load_usage | load | Watts |\n| apcupsd.temperature | temp | Celsius |\n| apcupsd.time | time | Minutes |\n| apcupsd.online | online | boolean |\n\n", "integration_type": "collector", "id": "charts.d.plugin-apcupsd-APC_UPS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/apcupsd/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "libreswan", "monitored_instance": {"name": "Libreswan", "link": "https://libreswan.org/", "categories": ["data-collection.vpns"], "icon_filename": "libreswan.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["vpn", "libreswan", "network", "ipsec"], "most_popular": false}, "overview": "# Libreswan\n\n## Overview\n\nMonitor Libreswan performance for optimal IPsec VPN operations. Improve your VPN operations with Netdata''s real-time metrics and built-in alerts.\n\nThe collector uses the `ipsec` command to collect the information it needs.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Permissions to execute `ipsec`\n\nThe plugin executes 2 commands to collect all the information it needs:\n\n```sh\nipsec whack --status\nipsec whack --trafficstatus\n```\n\nThe first command is used to extract the currently established tunnels, their IDs and their names.\nThe second command is used to extract the current uptime and traffic.\n\nMost probably user `netdata` will not be able to query libreswan, so the `ipsec` commands will be denied.\nThe plugin attempts to run `ipsec` as `sudo ipsec ...`, to get access to libreswan statistics.\n\nTo allow user `netdata` execute `sudo ipsec ...`, create the file `/etc/sudoers.d/netdata` with this content:\n\n```\nnetdata ALL = (root) NOPASSWD: /sbin/ipsec whack --status\nnetdata ALL = (root) NOPASSWD: /sbin/ipsec whack --trafficstatus\n```\n\nMake sure the path `/sbin/ipsec` matches your setup (execute `which ipsec` to find the right path).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/libreswan.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/libreswan.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the libreswan collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| libreswan_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| libreswan_priority | The charts priority on the dashboard | | False |\n| libreswan_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n| libreswan_sudo | Whether to run `ipsec` with `sudo` or not. | | False |\n\n{% /details %}\n#### Examples\n\n##### Run `ipsec` without sudo\n\nRun the `ipsec` utility without sudo\n\n```yaml\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#libreswan_update_every=1\n\n# the charts priority on the dashboard\n#libreswan_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#libreswan_retries=10\n\n# set to 1, to run ipsec with sudo (the default)\n# set to 0, to run ipsec without sudo\nlibreswan_sudo=0\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `libreswan` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 libreswan\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPSEC tunnel\n\nMetrics related to IPSEC tunnels. Each tunnel provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| libreswan.net | in, out | kilobits/s |\n| libreswan.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "charts.d.plugin-libreswan-Libreswan", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/libreswan/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "nut", "monitored_instance": {"name": "Network UPS Tools (NUT)", "link": "", "categories": ["data-collection.ups"], "icon_filename": "plug-circle-bolt.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["nut", "network ups tools", "ups", "pdu"], "most_popular": false}, "overview": "# Network UPS Tools (NUT)\n\n## Overview\n\nExamine UPS/PDU metrics with Netdata for insights into power device performance. Improve your power device performance with comprehensive dashboards and anomaly detection.\n\nThis collector uses the `nut` (Network UPS Tools) to query statistics for multiple UPS devices.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required software\n\nMake sure the Network UPS Tools (`nut`) is installed and can detect your UPS devices.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/nut.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/nut.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the nut collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| nut_ups | A space separated list of UPS names. If empty, the list returned by `upsc -l` will be used. | | False |\n| nut_names | Each line represents an alias for one UPS. If empty, the FQDN will be used. | | False |\n| nut_timeout | How long to wait for nut to respond. | | False |\n| nut_clients_chart | Set this to 1 to enable another chart showing the number of UPS clients connected to `upsd`. | | False |\n| nut_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| nut_priority | The charts priority on the dashboard | | False |\n| nut_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n\n{% /details %}\n#### Examples\n\n##### Provide names to UPS devices\n\nMap aliases to UPS devices\n\n{% details summary=\"Config\" %}\n```yaml\n# a space separated list of UPS names\n# if empty, the list returned by 'upsc -l' will be used\n#nut_ups=\n\n# each line represents an alias for one UPS\n# if empty, the FQDN will be used\nnut_names[\"XXXXXX\"]=\"UPS-office\"\nnut_names[\"YYYYYY\"]=\"UPS-rack\"\n\n# how much time in seconds, to wait for nut to respond\n#nut_timeout=2\n\n# set this to 1, to enable another chart showing the number\n# of UPS clients connected to upsd\n#nut_clients_chart=1\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#nut_update_every=2\n\n# the charts priority on the dashboard\n#nut_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#nut_retries=10\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nut` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 nut\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ nut_ups_charge ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.charge | average UPS charge over the last minute |\n| [ nut_10min_ups_load ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.load | average UPS load over the last 10 minutes |\n| [ nut_last_collected_secs ](https://github.com/netdata/netdata/blob/master/health/health.d/nut.conf) | nut.load | number of seconds since the last successful data collection |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ups\n\nMetrics related to UPS. Each UPS provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nut.charge | charge | percentage |\n| nut.runtime | runtime | seconds |\n| nut.battery.voltage | voltage, high, low, nominal | Volts |\n| nut.input.voltage | voltage, fault, nominal | Volts |\n| nut.input.current | nominal | Ampere |\n| nut.input.frequency | frequency, nominal | Hz |\n| nut.output.voltage | voltage | Volts |\n| nut.load | load | percentage |\n| nut.load_usage | load_usage | Watts |\n| nut.temperature | temp | temperature |\n| nut.clients | clients | clients |\n\n", "integration_type": "collector", "id": "charts.d.plugin-nut-Network_UPS_Tools_(NUT)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/nut/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "opensips", "monitored_instance": {"name": "OpenSIPS", "link": "https://opensips.org/", "categories": ["data-collection.telephony-servers"], "icon_filename": "opensips.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["opensips", "sip", "voice", "video", "stream"], "most_popular": false}, "overview": "# OpenSIPS\n\n## Overview\n\nExamine OpenSIPS metrics for insights into SIP server operations. Study call rates, error rates, and response times for reliable voice over IP services.\n\nThe collector uses the `opensipsctl` command line utility to gather OpenSIPS metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will attempt to call `opensipsctl` along with a default number of parameters, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required software\n\nThe collector requires the `opensipsctl` to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/opensips.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/opensips.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the opensips collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| opensips_opts | Specify parameters to the `opensipsctl` command. If the default value fails to get global status, set here whatever options are needed to connect to the opensips server. | | False |\n| opensips_cmd | If `opensipsctl` is not in $PATH, specify it's full path here. | | False |\n| opensips_timeout | How long to wait for `opensipsctl` to respond. | | False |\n| opensips_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| opensips_priority | The charts priority on the dashboard. | | False |\n| opensips_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n\n{% /details %}\n#### Examples\n\n##### Custom `opensipsctl` command\n\nSet a custom path to the `opensipsctl` command\n\n```yaml\n#opensips_opts=\"fifo get_statistics all\"\nopensips_cmd=/opt/opensips/bin/opensipsctl\n#opensips_timeout=2\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#opensips_update_every=5\n\n# the charts priority on the dashboard\n#opensips_priority=80000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#opensips_retries=10\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `opensips` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 opensips\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenSIPS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| opensips.dialogs_active | active, early | dialogs |\n| opensips.users | registered, location, contacts, expires | users |\n| opensips.registrar | accepted, rejected | registrations/s |\n| opensips.transactions | UAS, UAC | transactions/s |\n| opensips.core_rcv | requests, replies | queries/s |\n| opensips.core_fwd | requests, replies | queries/s |\n| opensips.core_drop | requests, replies | queries/s |\n| opensips.core_err | requests, replies | queries/s |\n| opensips.core_bad | bad_URIs_rcvd, unsupported_methods, bad_msg_hdr | queries/s |\n| opensips.tm_replies | received, relayed, local | replies/s |\n| opensips.transactions_status | 2xx, 3xx, 4xx, 5xx, 6xx | transactions/s |\n| opensips.transactions_inuse | inuse | transactions |\n| opensips.sl_replies | 1xx, 2xx, 3xx, 4xx, 5xx, 6xx, sent, error, ACKed | replies/s |\n| opensips.dialogs | processed, expire, failed | dialogs/s |\n| opensips.net_waiting | UDP, TCP | kilobytes |\n| opensips.uri_checks | positive, negative | checks / sec |\n| opensips.traces | requests, replies | traces / sec |\n| opensips.shmem | total, used, real_used, max_used, free | kilobytes |\n| opensips.shmem_fragment | fragments | fragments |\n\n", "integration_type": "collector", "id": "charts.d.plugin-opensips-OpenSIPS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/opensips/metadata.yaml"}, {"meta": {"plugin_name": "charts.d.plugin", "module_name": "sensors", "monitored_instance": {"name": "Linux Sensors (sysfs)", "link": "https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["sensors", "sysfs", "hwmon", "rpi", "raspberry pi"], "most_popular": false}, "overview": "# Linux Sensors (sysfs)\n\n## Overview\n\nUse this collector when `lm-sensors` doesn't work on your device (e.g. for RPi temperatures).\nFor all other cases use the [Python collector](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/sensors), which supports multiple jobs, is more efficient and performs calculations on top of the kernel provided values.\"\n\n\nIt will provide charts for all configured system sensors, by reading sensors directly from the kernel.\nThe values graphed are the raw hardware values of the sensors.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, the collector will try to read entries under `/sys/devices`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `charts.d/sensors.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config charts.d/sensors.conf\n```\n#### Options\n\nThe config file is sourced by the charts.d plugin. It's a standard bash file.\n\nThe following collapsed table contains all the options that can be configured for the sensors collector.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| sensors_sys_dir | The directory the kernel exposes sensor data. | | False |\n| sensors_sys_depth | How deep in the tree to check for sensor data. | | False |\n| sensors_source_update | If set to 1, the script will overwrite internal script functions with code generated ones. | | False |\n| sensors_update_every | The data collection frequency. If unset, will inherit the netdata update frequency. | | False |\n| sensors_priority | The charts priority on the dashboard. | | False |\n| sensors_retries | The number of retries to do in case of failure before disabling the collector. | | False |\n\n{% /details %}\n#### Examples\n\n##### Set sensors path depth\n\nSet a different sensors path depth\n\n```yaml\n# the directory the kernel keeps sensor data\n#sensors_sys_dir=\"/sys/devices\"\n\n# how deep in the tree to check for sensor data\nsensors_sys_depth=5\n\n# if set to 1, the script will overwrite internal\n# script functions with code generated ones\n# leave to 1, is faster\n#sensors_source_update=1\n\n# the data collection frequency\n# if unset, will inherit the netdata update frequency\n#sensors_update_every=\n\n# the charts priority on the dashboard\n#sensors_priority=90000\n\n# the number of retries to do in case of failure\n# before disabling the module\n#sensors_retries=10\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `sensors` collector, run the `charts.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `charts.d.plugin` to debug the collector:\n\n ```bash\n ./charts.d.plugin debug 1 sensors\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per sensor chip\n\nMetrics related to sensor chips. Each chip provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sensors.temp | {filename} | Celsius |\n| sensors.volt | {filename} | Volts |\n| sensors.curr | {filename} | Ampere |\n| sensors.power | {filename} | Watt |\n| sensors.fans | {filename} | Rotations / Minute |\n| sensors.energy | {filename} | Joule |\n| sensors.humidity | {filename} | Percent |\n\n", "integration_type": "collector", "id": "charts.d.plugin-sensors-Linux_Sensors_(sysfs)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/charts.d.plugin/sensors/metadata.yaml"}, {"meta": {"plugin_name": "cups.plugin", "module_name": "cups.plugin", "monitored_instance": {"name": "CUPS", "link": "https://www.cups.org/", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "cups.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# CUPS\n\n## Overview\n\nMonitor CUPS performance for achieving optimal printing system operations. Monitor job statuses, queue lengths, and error rates to ensure smooth printing tasks.\n\nThe plugin uses CUPS shared library to connect and monitor the server.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs to access the server. Netdata sets permissions during installation time to reach the server through its library.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin detects when CUPS server is running and tries to connect to it.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Minimum setup\n\nThe CUPS server must be installed and running.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:cups]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Additional parameters for the collector | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CUPS instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cups.dests_state | idle, printing, stopped | dests |\n| cups.dests_option | total, acceptingjobs, shared | dests |\n| cups.job_num | pending, held, processing | jobs |\n| cups.job_size | pending, held, processing | KB |\n\n### Per destination\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cups.destination_job_num | pending, held, processing | jobs |\n| cups.destination_job_size | pending, held, processing | KB |\n\n", "integration_type": "collector", "id": "cups.plugin-cups.plugin-CUPS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/cups.plugin/metadata.yaml"}, {"meta": {"plugin_name": "debugfs.plugin", "module_name": "/sys/kernel/debug/extfrag", "monitored_instance": {"name": "System Memory Fragmentation", "link": "https://www.kernel.org/doc/html/next/admin-guide/sysctl/vm.html", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["extfrag", "extfrag_threshold", "memory fragmentation"], "most_popular": false}, "overview": "# System Memory Fragmentation\n\n## Overview\n\nCollects memory fragmentation statistics from the Linux kernel\n\nParse data from `debugfs` file\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/kernel/debug/extfrag`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically run by default.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Additinal parameters for collector | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the overall memory fragmentation of the system.\n\n### Per node\n\nMemory fragmentation statistics for each NUMA node in the system.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| numa_node | The NUMA node the metrics are associated with. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.fragmentation_index_dma | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n| mem.fragmentation_index_dma32 | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n| mem.fragmentation_index_normal | order0, order1, order2, order3, order4, order5, order6, order7, order8, order9, order10 | index |\n\n", "integration_type": "collector", "id": "debugfs.plugin-/sys/kernel/debug/extfrag-System_Memory_Fragmentation", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/debugfs.plugin/metadata.yaml"}, {"meta": {"plugin_name": "debugfs.plugin", "module_name": "/sys/kernel/debug/zswap", "monitored_instance": {"name": "Linux ZSwap", "link": "https://www.kernel.org/doc/html/latest/admin-guide/mm/zswap.html", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["swap", "zswap", "frontswap", "swap cache"], "most_popular": false}, "overview": "# Linux ZSwap\n\n## Overview\n\nCollects zswap performance metrics on Linux systems.\n\n\nParse data from `debugfs file.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/kernel/debug/zswap`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically detect whether or not the system is using zswap.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Additinal parameters for collector | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the performance statistics of zswap.\n\n### Per Linux ZSwap instance\n\nGlobal zswap performance metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.zswap_pool_compression_ratio | compression_ratio | ratio |\n| system.zswap_pool_compressed_size | compressed_size | bytes |\n| system.zswap_pool_raw_size | uncompressed_size | bytes |\n| system.zswap_rejections | compress_poor, kmemcache_fail, alloc_fail, reclaim_fail | rejections/s |\n| system.zswap_pool_limit_hit | limit | events/s |\n| system.zswap_written_back_raw_bytes | written_back | bytes/s |\n| system.zswap_same_filled_raw_size | same_filled | bytes |\n| system.zswap_duplicate_entry | duplicate | entries/s |\n\n", "integration_type": "collector", "id": "debugfs.plugin-/sys/kernel/debug/zswap-Linux_ZSwap", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/debugfs.plugin/metadata.yaml"}, {"meta": {"plugin_name": "debugfs.plugin", "module_name": "intel_rapl", "monitored_instance": {"name": "Power Capping", "link": "https://www.kernel.org/doc/html/next/power/powercap/powercap.html", "categories": ["data-collection.linux-systems.kernel-metrics"], "icon_filename": "powersupply.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["power capping", "energy"], "most_popular": false}, "overview": "# Power Capping\n\n## Overview\n\nCollects power capping performance metrics on Linux systems.\n\n\nParse data from `debugfs file.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to files under `/sys/devices/virtual/powercap`, which are accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to debugfs. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions so that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming that debugfs is mounted and the required permissions are available, this integration will automatically detect whether or not the system is using zswap.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### filesystem\n\nThe debugfs filesystem must be mounted on your host for plugin to collect data. You can run the command-line (`sudo mount -t debugfs none /sys/kernel/debug/`) to mount it locally. It is also recommended to modify your fstab (5) avoiding necessity to mount the filesystem before starting netdata.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:debugfs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Additinal parameters for collector | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nMonitor the Intel RAPL zones Consumption.\n\n### Per Power Capping instance\n\nGlobal Intel RAPL zones.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.powercap_intel_rapl_zone | Power | Watts |\n| cpu.powercap_intel_rapl_subzones | dram, core, uncore | Watts |\n\n", "integration_type": "collector", "id": "debugfs.plugin-intel_rapl-Power_Capping", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/debugfs.plugin/metadata.yaml"}, {"meta": {"plugin_name": "diskspace.plugin", "module_name": "diskspace.plugin", "monitored_instance": {"name": "Disk space", "link": "", "categories": ["data-collection.linux-systems"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "ebpf.plugin", "module_name": "disk"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["disk", "I/O", "space", "inode"], "most_popular": false}, "overview": "# Disk space\n\n## Overview\n\nMonitor Disk space metrics for proficient storage management. Keep track of usage, free space, and error rates to prevent disk space issues.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin reads data from `/proc/self/mountinfo` and `/proc/diskstats file`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:proc:diskspace]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nYou can also specify per mount point `[plugin:proc:diskspace:mountpoint]`\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| remove charts of unmounted disks | Remove chart when a device is unmounted on host. | | False |\n| check for new mount points every | Parse proc files frequency. | | False |\n| exclude space metrics on paths | Do not show metrics (charts) for listed paths. This option accepts netdata simple pattern. | | False |\n| exclude space metrics on filesystems | Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern. | | False |\n| exclude inode metrics on filesystems | Do not show metrics (charts) for listed filesystems. This option accepts netdata simple pattern. | | False |\n| space usage for all disks | Define if plugin will show metrics for space usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option. | | False |\n| inodes usage for all disks | Define if plugin will show metrics for inode usage. When value is set to `auto` plugin will try to access information to display if filesystem or path was not discarded with previous option. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ disk_space_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.space | disk ${label:mount_point} space utilization |\n| [ disk_inode_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.inodes | disk ${label:mount_point} inode utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per mount point\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mount_point | Path used to mount a filesystem |\n| filesystem | The filesystem used to format a partition. |\n| mount_root | Root directory where mount points are present. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n", "integration_type": "collector", "id": "diskspace.plugin-diskspace.plugin-Disk_space", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/diskspace.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "cachestat", "monitored_instance": {"name": "eBPF Cachestat", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["Page cache", "Hit ratio", "eBPF"], "most_popular": false}, "overview": "# eBPF Cachestat\n\n## Overview\n\nMonitor Linux page cache events giving for users a general vision about how his kernel is manipulating files.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/cachestat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/cachestat.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Cachestat instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.cachestat_ratio | ratio | % |\n| mem.cachestat_dirties | dirty | page/s |\n| mem.cachestat_hits | hit | hits/s |\n| mem.cachestat_misses | miss | misses/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.cachestat_ratio | a dimension per app group | % |\n| apps.cachestat_dirties | a dimension per app group | page/s |\n| apps.cachestat_hits | a dimension per app group | hits/s |\n| apps.cachestat_misses | a dimension per app group | misses/s |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.cachestat_ratio | ratio | % |\n| cgroup.cachestat_dirties | dirty | page/s |\n| cgroup.cachestat_hits | hit | hits/s |\n| cgroup.cachestat_misses | miss | misses/s |\n| services.cachestat_ratio | a dimension per systemd service | % |\n| services.cachestat_dirties | a dimension per systemd service | page/s |\n| services.cachestat_hits | a dimension per systemd service | hits/s |\n| services.cachestat_misses | a dimension per systemd service | misses/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-cachestat-eBPF_Cachestat", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "dcstat", "monitored_instance": {"name": "eBPF DCstat", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["Directory Cache", "File system", "eBPF"], "most_popular": false}, "overview": "# eBPF DCstat\n\n## Overview\n\nMonitor directory cache events per application given an overall vision about files on memory or storage device.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/dcstat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/dcstat.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config option\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.dc_ratio | a dimension per app group | % |\n| apps.dc_reference | a dimension per app group | files |\n| apps.dc_not_cache | a dimension per app group | files |\n| apps.dc_not_found | a dimension per app group | files |\n\n### Per filesystem\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.dc_reference | reference, slow, miss | files |\n| filesystem.dc_hit_ratio | ratio | % |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.dc_ratio | ratio | % |\n| cgroup.dc_reference | reference | files |\n| cgroup.dc_not_cache | slow | files |\n| cgroup.dc_not_found | miss | files |\n| services.dc_ratio | a dimension per systemd service | % |\n| services.dc_reference | a dimension per systemd service | files |\n| services.dc_not_cache | a dimension per systemd service | files |\n| services.dc_not_found | a dimension per systemd service | files |\n\n", "integration_type": "collector", "id": "ebpf.plugin-dcstat-eBPF_DCstat", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "disk", "monitored_instance": {"name": "eBPF Disk", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["hard Disk", "eBPF", "latency", "partition"], "most_popular": false}, "overview": "# eBPF Disk\n\n## Overview\n\nMeasure latency for I/O events on disk.\n\nAttach tracepoints to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/disk.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/disk.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per disk\n\nThese metrics measure latency for I/O events on every hard disk present on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.latency_io | latency | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-disk-eBPF_Disk", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "filedescriptor", "monitored_instance": {"name": "eBPF Filedescriptor", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["file", "eBPF", "fd", "open", "close"], "most_popular": false}, "overview": "# eBPF Filedescriptor\n\n## Overview\n\nMonitor calls for functions responsible to open or close a file descriptor and possible errors.\n\nAttach tracing (kprobe and trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netdata sets necessary permissions during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nDepending of kernel version and frequency that files are open and close, this thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/fd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/fd.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.fd_open | open | calls/s |\n| cgroup.fd_open_error | open | calls/s |\n| cgroup.fd_closed | close | calls/s |\n| cgroup.fd_close_error | close | calls/s |\n| services.file_open | a dimension per systemd service | calls/s |\n| services.file_open_error | a dimension per systemd service | calls/s |\n| services.file_closed | a dimension per systemd service | calls/s |\n| services.file_close_error | a dimension per systemd service | calls/s |\n\n### Per eBPF Filedescriptor instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.file_descriptor | open, close | calls/s |\n| filesystem.file_error | open, close | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.file_open | a dimension per app group | calls/s |\n| apps.file_open_error | a dimension per app group | calls/s |\n| apps.file_closed | a dimension per app group | calls/s |\n| apps.file_close_error | a dimension per app group | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-filedescriptor-eBPF_Filedescriptor", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "filesystem", "monitored_instance": {"name": "eBPF Filesystem", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["Filesystem", "ext4", "btrfs", "nfs", "xfs", "zfs", "eBPF", "latency", "I/O"], "most_popular": false}, "overview": "# eBPF Filesystem\n\n## Overview\n\nMonitor latency for main actions on filesystem like I/O events.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/filesystem.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/filesystem.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites default options, while `[filesystem]` allow user to select the filesystems to monitor.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n| btrfsdist | Enable or disable latency monitoring for functions associated with btrfs filesystem. | | False |\n| ext4dist | Enable or disable latency monitoring for functions associated with ext4 filesystem. | | False |\n| nfsdist | Enable or disable latency monitoring for functions associated with nfs filesystem. | | False |\n| xfsdist | Enable or disable latency monitoring for functions associated with xfs filesystem. | | False |\n| zfsdist | Enable or disable latency monitoring for functions associated with zfs filesystem. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per filesystem\n\nLatency charts associate with filesystem actions.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.read_latency | latency period | calls/s |\n| filesystem.open_latency | latency period | calls/s |\n| filesystem.sync_latency | latency period | calls/s |\n\n### Per iilesystem\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.write_latency | latency period | calls/s |\n\n### Per eBPF Filesystem instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.attributte_latency | latency period | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-filesystem-eBPF_Filesystem", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "hardirq", "monitored_instance": {"name": "eBPF Hardirq", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["HardIRQ", "eBPF"], "most_popular": false}, "overview": "# eBPF Hardirq\n\n## Overview\n\nMonitor latency for each HardIRQ available.\n\nAttach tracepoints to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/hardirq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/hardirq.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Hardirq instance\n\nThese metrics show latest timestamp for each hardIRQ available on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.hardirq_latency | hardirq names | milliseconds |\n\n", "integration_type": "collector", "id": "ebpf.plugin-hardirq-eBPF_Hardirq", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "mdflush", "monitored_instance": {"name": "eBPF MDflush", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["MD", "RAID", "eBPF"], "most_popular": false}, "overview": "# eBPF MDflush\n\n## Overview\n\nMonitor when flush events happen between disks.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that `md_flush_request` is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/mdflush.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/mdflush.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF MDflush instance\n\nNumber of times md_flush_request was called since last time.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mdstat.mdstat_flush | disk | flushes |\n\n", "integration_type": "collector", "id": "ebpf.plugin-mdflush-eBPF_MDflush", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "mount", "monitored_instance": {"name": "eBPF Mount", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["mount", "umount", "device", "eBPF"], "most_popular": false}, "overview": "# eBPF Mount\n\n## Overview\n\nMonitor calls for mount and umount syscall.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/mount.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/mount.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Mount instance\n\nCalls for syscalls mount an umount.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mount_points.call | mount, umount | calls/s |\n| mount_points.error | mount, umount | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-mount-eBPF_Mount", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "oomkill", "monitored_instance": {"name": "eBPF OOMkill", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["application", "memory"], "most_popular": false}, "overview": "# eBPF OOMkill\n\n## Overview\n\nMonitor applications that reach out of memory.\n\nAttach tracepoint to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/oomkill.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/oomkill.conf\n```\n#### Options\n\nOverwrite default configuration reducing number of I/O events\n\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### update every\n\n\n\n### ebpf load mode\n\n\n\n### lifetime\n\n\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese metrics show cgroup/service that reached OOM.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.oomkills | cgroup name | kills |\n| services.oomkills | a dimension per systemd service | kills |\n\n### Per apps\n\nThese metrics show cgroup/service that reached OOM.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.oomkills | a dimension per app group | kills |\n\n", "integration_type": "collector", "id": "ebpf.plugin-oomkill-eBPF_OOMkill", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "process", "monitored_instance": {"name": "eBPF Process", "link": "https://github.com/netdata/netdata/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["Memory", "plugin", "eBPF"], "most_popular": false}, "overview": "# eBPF Process\n\n## Overview\n\nMonitor internal memory usage.\n\nUses netdata internal statistic to monitor memory management by plugin.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Netdata flags.\n\nTo have these charts you need to compile netdata with flag `NETDATA_DEV_MODE`.\n\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Process instance\n\nHow plugin is allocating memory.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_threads | total, running | threads |\n| netdata.ebpf_load_methods | legacy, co-re | methods |\n| netdata.ebpf_kernel_memory | memory_locked | bytes |\n| netdata.ebpf_hash_tables_count | hash_table | hash tables |\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_aral_stat_size | memory | bytes |\n| netdata.ebpf_aral_stat_alloc | aral | calls |\n| netdata.ebpf_hash_tables_insert_pid_elements | thread | rows |\n| netdata.ebpf_hash_tables_remove_pid_elements | thread | rows |\n\n", "integration_type": "collector", "id": "ebpf.plugin-process-eBPF_Process", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "processes", "monitored_instance": {"name": "eBPF Processes", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["thread", "fork", "process", "eBPF"], "most_popular": false}, "overview": "# eBPF Processes\n\n## Overview\n\nMonitor calls for function creating tasks (threads and processes) inside Linux kernel.\n\nAttach tracing (kprobe or tracepoint, and trampoline) to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/process.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/process.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). This plugin will always try to attach a tracepoint, so option here will impact only function used to monitor task (thread and process) creation. | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Processes instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.process_thread | process | calls/s |\n| system.process_status | process, zombie | difference |\n| system.exit | process | calls/s |\n| system.task_error | task | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.process_create | a dimension per app group | calls/s |\n| apps.thread_create | a dimension per app group | calls/s |\n| apps.task_exit | a dimension per app group | calls/s |\n| apps.task_close | a dimension per app group | calls/s |\n| apps.task_error | a dimension per app group | calls/s |\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.process_create | process | calls/s |\n| cgroup.thread_create | thread | calls/s |\n| cgroup.task_exit | exit | calls/s |\n| cgroup.task_close | process | calls/s |\n| cgroup.task_error | process | calls/s |\n| services.process_create | a dimension per systemd service | calls/s |\n| services.thread_create | a dimension per systemd service | calls/s |\n| services.task_close | a dimension per systemd service | calls/s |\n| services.task_exit | a dimension per systemd service | calls/s |\n| services.task_error | a dimension per systemd service | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-processes-eBPF_Processes", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "shm", "monitored_instance": {"name": "eBPF SHM", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["syscall", "shared memory", "eBPF"], "most_popular": false}, "overview": "# eBPF SHM\n\n## Overview\n\nMonitor syscall responsible to manipulate shared memory.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/shm.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/shm.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n| shmget | Enable or disable monitoring for syscall `shmget` | | False |\n| shmat | Enable or disable monitoring for syscall `shmat` | | False |\n| shmdt | Enable or disable monitoring for syscall `shmdt` | | False |\n| shmctl | Enable or disable monitoring for syscall `shmctl` | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.shmget | get | calls/s |\n| cgroup.shmat | at | calls/s |\n| cgroup.shmdt | dt | calls/s |\n| cgroup.shmctl | ctl | calls/s |\n| services.shmget | a dimension per systemd service | calls/s |\n| services.shmat | a dimension per systemd service | calls/s |\n| services.shmdt | a dimension per systemd service | calls/s |\n| services.shmctl | a dimension per systemd service | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.shmget_call | a dimension per app group | calls/s |\n| apps.shmat_call | a dimension per app group | calls/s |\n| apps.shmdt_call | a dimension per app group | calls/s |\n| apps.shmctl_call | a dimension per app group | calls/s |\n\n### Per eBPF SHM instance\n\nThese Metrics show number of calls for specified syscall.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.shared_memory_calls | get, at, dt, ctl | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-shm-eBPF_SHM", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "socket", "monitored_instance": {"name": "eBPF Socket", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["TCP", "UDP", "bandwidth", "server", "connection", "socket"], "most_popular": false}, "overview": "# eBPF Socket\n\n## Overview\n\nMonitor bandwidth consumption per application for protocols TCP and UDP.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/network.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/network.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`. Options inside `network connections` are ignored for while.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| bandwidth table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ipv4 connection table size | Number of elements stored inside hash tables used to monitor calls per IPV4 connections. | | False |\n| ipv6 connection table size | Number of elements stored inside hash tables used to monitor calls per IPV6 connections. | | False |\n| udp connection table size | Number of temporary elements stored inside hash tables used to monitor UDP connections. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Socket instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ip.inbound_conn | connection_tcp | connections/s |\n| ip.tcp_outbound_conn | received | connections/s |\n| ip.tcp_functions | received, send, closed | calls/s |\n| ip.total_tcp_bandwidth | received, send | kilobits/s |\n| ip.tcp_error | received, send | calls/s |\n| ip.tcp_retransmit | retransmited | calls/s |\n| ip.udp_functions | received, send | calls/s |\n| ip.total_udp_bandwidth | received, send | kilobits/s |\n| ip.udp_error | received, send | calls/s |\n\n### Per apps\n\nThese metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.outbound_conn_v4 | a dimension per app group | connections/s |\n| apps.outbound_conn_v6 | a dimension per app group | connections/s |\n| apps.total_bandwidth_sent | a dimension per app group | kilobits/s |\n| apps.total_bandwidth_recv | a dimension per app group | kilobits/s |\n| apps.bandwidth_tcp_send | a dimension per app group | calls/s |\n| apps.bandwidth_tcp_recv | a dimension per app group | calls/s |\n| apps.bandwidth_tcp_retransmit | a dimension per app group | calls/s |\n| apps.bandwidth_udp_send | a dimension per app group | calls/s |\n| apps.bandwidth_udp_recv | a dimension per app group | calls/s |\n| services.net_conn_ipv4 | a dimension per systemd service | connections/s |\n\n### Per cgroup\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.net_conn_ipv4 | connected_v4 | connections/s |\n| cgroup.net_conn_ipv6 | connected_v6 | connections/s |\n| cgroup.net_bytes_recv | received | calls/s |\n| cgroup.net_bytes_sent | sent | calls/s |\n| cgroup.net_tcp_recv | received | calls/s |\n| cgroup.net_tcp_send | sent | calls/s |\n| cgroup.net_retransmit | retransmitted | calls/s |\n| cgroup.net_udp_send | sent | calls/s |\n| cgroup.net_udp_recv | received | calls/s |\n| services.net_conn_ipv6 | a dimension per systemd service | connections/s |\n| services.net_bytes_recv | a dimension per systemd service | kilobits/s |\n| services.net_bytes_sent | a dimension per systemd service | kilobits/s |\n| services.net_tcp_recv | a dimension per systemd service | calls/s |\n| services.net_tcp_send | a dimension per systemd service | calls/s |\n| services.net_tcp_retransmit | a dimension per systemd service | calls/s |\n| services.net_udp_send | a dimension per systemd service | calls/s |\n| services.net_udp_recv | a dimension per systemd service | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-socket-eBPF_Socket", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "softirq", "monitored_instance": {"name": "eBPF SoftIRQ", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["SoftIRQ", "eBPF"], "most_popular": false}, "overview": "# eBPF SoftIRQ\n\n## Overview\n\nMonitor latency for each SoftIRQ available.\n\nAttach kprobe to internal kernel functions.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug/`).`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/softirq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/softirq.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF SoftIRQ instance\n\nThese metrics show latest timestamp for each softIRQ available on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softirq_latency | soft IRQs | milliseconds |\n\n", "integration_type": "collector", "id": "ebpf.plugin-softirq-eBPF_SoftIRQ", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "swap", "monitored_instance": {"name": "eBPF SWAP", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["SWAP", "memory", "eBPF", "Hard Disk"], "most_popular": false}, "overview": "# eBPF SWAP\n\n## Overview\n\nMonitors when swap has I/O events and applications executing events.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/swap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/swap.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.swap_read | read | calls/s |\n| cgroup.swap_write | write | calls/s |\n| services.swap_read | a dimension per systemd service | calls/s |\n| services.swap_write | a dimension per systemd service | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.swap_read_call | a dimension per app group | calls/s |\n| apps.swap_write_call | a dimension per app group | calls/s |\n\n### Per eBPF SWAP instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapcalls | write, read | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-swap-eBPF_SWAP", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "sync", "monitored_instance": {"name": "eBPF Sync", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["syscall", "eBPF", "hard disk", "memory"], "most_popular": false}, "overview": "# eBPF Sync\n\n## Overview\n\nMonitor syscall responsible to move data from memory to storage device.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT, CONFIG_HAVE_SYSCALL_TRACEPOINTS), files inside debugfs, and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n#### Debug Filesystem\n\nThis thread needs to attach a tracepoint to monitor when a process schedule an exit event. To allow this specific feaure, it is necessary to mount `debugfs` (`mount -t debugfs none /sys/kernel/debug`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/sync.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/sync.conf\n```\n#### Options\n\nThis configuration file have two different sections. The `[global]` overwrites all default options, while `[syscalls]` allow user to select the syscall to monitor.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n| sync | Enable or disable monitoring for syscall `sync` | | False |\n| msync | Enable or disable monitoring for syscall `msync` | | False |\n| fsync | Enable or disable monitoring for syscall `fsync` | | False |\n| fdatasync | Enable or disable monitoring for syscall `fdatasync` | | False |\n| syncfs | Enable or disable monitoring for syscall `syncfs` | | False |\n| sync_file_range | Enable or disable monitoring for syscall `sync_file_range` | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ sync_freq ](https://github.com/netdata/netdata/blob/master/health/health.d/synchronization.conf) | mem.sync | number of sync() system calls. Every call causes all pending modifications to filesystem metadata and cached file data to be written to the underlying filesystems. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per eBPF Sync instance\n\nThese metrics show total number of calls to functions inside kernel.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.file_sync | fsync, fdatasync | calls/s |\n| mem.meory_map | msync | calls/s |\n| mem.sync | sync, syncfs | calls/s |\n| mem.file_segment | sync_file_range | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-sync-eBPF_Sync", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ebpf.plugin", "module_name": "vfs", "monitored_instance": {"name": "eBPF VFS", "link": "https://kernel.org/", "categories": ["data-collection.ebpf"], "icon_filename": "ebpf.jpg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["virtual", "filesystem", "eBPF", "I/O", "files"], "most_popular": false}, "overview": "# eBPF VFS\n\n## Overview\n\nMonitor I/O events on Linux Virtual Filesystem.\n\nAttach tracing (kprobe, trampoline) to internal kernel functions according options used to compile kernel.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid because it loads data inside kernel. Netada sets necessary permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe plugin checks kernel compilation flags (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) and presence of BTF files to decide which eBPF program will be attached.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThis thread will add overhead every time that an internal kernel function monitored by this thread is called. The estimated additional period of time is between 90-200ms per call on kernels that do not have BTF technology.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Compile kernel\n\nCheck if your kernel was compiled with necessary options (CONFIG_KPROBES, CONFIG_BPF, CONFIG_BPF_SYSCALL, CONFIG_BPF_JIT) in `/proc/config.gz` or inside /boot/config file. Some cited names can be different accoring preferences of Linux distributions.\nWhen you do not have options set, it is necessary to get the kernel source code from https://kernel.org or a kernel package from your distribution, this last is preferred. The kernel compilation has a well definedd pattern, but distributions can deliver their configuration files\nwith different names.\n\nNow follow steps:\n1. Copy the configuration file to /usr/src/linux/.config.\n2. Select the necessary options: make oldconfig\n3. Compile your kernel image: make bzImage\n4. Compile your modules: make modules\n5. Copy your new kernel image for boot loader directory\n6. Install the new modules: make modules_install\n7. Generate an initial ramdisk image (`initrd`) if it is necessary.\n8. Update your boot loader\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ebpf.d/vfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ebpf.d/vfs.conf\n```\n#### Options\n\nAll options are defined inside section `[global]`.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| ebpf load mode | Define whether plugin will monitor the call (`entry`) for the functions or it will also monitor the return (`return`). | | False |\n| apps | Enable or disable integration with apps.plugin | | False |\n| cgroups | Enable or disable integration with cgroup.plugin | | False |\n| pid table size | Number of elements stored inside hash tables used to monitor calls per PID. | | False |\n| ebpf type format | Define the file type to load an eBPF program. Three options are available: `legacy` (Attach only `kprobe`), `co-re` (Plugin tries to use `trampoline` when available), and `auto` (plugin check OS configuration before to load). | | False |\n| ebpf co-re tracing | Select the attach method used by plugin when `co-re` is defined in previous option. Two options are available: `trampoline` (Option with lowest overhead), and `probe` (the same of legacy code). | | False |\n| maps per core | Define how plugin will load their hash maps. When enabled (`yes`) plugin will load one hash table per core, instead to have centralized information. | | False |\n| lifetime | Set default lifetime for thread when enabled by cloud. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per cgroup\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cgroup.vfs_unlink | delete | calls/s |\n| cgroup.vfs_write | write | calls/s |\n| cgroup.vfs_write_error | write | calls/s |\n| cgroup.vfs_read | read | calls/s |\n| cgroup.vfs_read_error | read | calls/s |\n| cgroup.vfs_write_bytes | write | bytes/s |\n| cgroup.vfs_read_bytes | read | bytes/s |\n| cgroup.vfs_fsync | fsync | calls/s |\n| cgroup.vfs_fsync_error | fsync | calls/s |\n| cgroup.vfs_open | open | calls/s |\n| cgroup.vfs_open_error | open | calls/s |\n| cgroup.vfs_create | create | calls/s |\n| cgroup.vfs_create_error | create | calls/s |\n| services.vfs_unlink | a dimension per systemd service | calls/s |\n| services.vfs_write | a dimension per systemd service | calls/s |\n| services.vfs_write_error | a dimension per systemd service | calls/s |\n| services.vfs_read | a dimension per systemd service | calls/s |\n| services.vfs_read_error | a dimension per systemd service | calls/s |\n| services.vfs_write_bytes | a dimension per systemd service | bytes/s |\n| services.vfs_read_bytes | a dimension per systemd service | bytes/s |\n| services.vfs_fsync | a dimension per systemd service | calls/s |\n| services.vfs_fsync_error | a dimension per systemd service | calls/s |\n| services.vfs_open | a dimension per systemd service | calls/s |\n| services.vfs_open_error | a dimension per systemd service | calls/s |\n| services.vfs_create | a dimension per systemd service | calls/s |\n| services.vfs_create_error | a dimension per systemd service | calls/s |\n\n### Per eBPF VFS instance\n\nThese Metrics show grouped information per cgroup/service.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filesystem.vfs_deleted_objects | delete | calls/s |\n| filesystem.vfs_io | read, write | calls/s |\n| filesystem.vfs_io_bytes | read, write | bytes/s |\n| filesystem.vfs_io_error | read, write | calls/s |\n| filesystem.vfs_fsync | fsync | calls/s |\n| filesystem.vfs_fsync_error | fsync | calls/s |\n| filesystem.vfs_open | open | calls/s |\n| filesystem.vfs_open_error | open | calls/s |\n| filesystem.vfs_create | create | calls/s |\n| filesystem.vfs_create_error | create | calls/s |\n\n### Per apps\n\nThese Metrics show grouped information per apps group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| apps.file_deleted | a dimension per app group | calls/s |\n| apps.vfs_write_call | a dimension per app group | calls/s |\n| apps.vfs_write_error | a dimension per app group | calls/s |\n| apps.vfs_read_call | a dimension per app group | calls/s |\n| apps.vfs_read_error | a dimension per app group | calls/s |\n| apps.vfs_write_bytes | a dimension per app group | bytes/s |\n| apps.vfs_read_bytes | a dimension per app group | bytes/s |\n| apps.vfs_fsync | a dimension per app group | calls/s |\n| apps.vfs_fsync_error | a dimension per app group | calls/s |\n| apps.vfs_open | a dimension per app group | calls/s |\n| apps.vfs_open_error | a dimension per app group | calls/s |\n| apps.vfs_create | a dimension per app group | calls/s |\n| apps.vfs_create_error | a dimension per app group | calls/s |\n\n", "integration_type": "collector", "id": "ebpf.plugin-vfs-eBPF_VFS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ebpf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "dev.cpu.0.freq", "monitored_instance": {"name": "dev.cpu.0.freq", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# dev.cpu.0.freq\n\n## Overview\n\nRead current CPU Scaling frequency.\n\nCurrent CPU Scaling Frequency\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `Config options`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config Config options\n```\n#### Options\n\n\n\n{% details summary=\"\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| dev.cpu.0.freq | Enable or disable CPU Scaling frequency metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per dev.cpu.0.freq instance\n\nThe metric shows status of CPU frequency, it is direct affected by system load.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.scaling_cur_freq | frequency | MHz |\n\n", "integration_type": "collector", "id": "freebsd.plugin-dev.cpu.0.freq-dev.cpu.0.freq", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "dev.cpu.temperature", "monitored_instance": {"name": "dev.cpu.temperature", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.org"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# dev.cpu.temperature\n\n## Overview\n\nGet current CPU temperature\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| dev.cpu.temperature | Enable or disable CPU temperature metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per dev.cpu.temperature instance\n\nThis metric show latest CPU temperature.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.temperature | a dimension per core | Celsius |\n\n", "integration_type": "collector", "id": "freebsd.plugin-dev.cpu.temperature-dev.cpu.temperature", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "devstat", "monitored_instance": {"name": "devstat", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# devstat\n\n## Overview\n\nCollect information per hard disk available on host.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:kern.devstat]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new disks detected at runtime | Enable or disable possibility to detect new disks. | | False |\n| performance metrics for pass devices | Enable or disable metrics for disks with type `PASS`. | | False |\n| total bandwidth for all disks | Enable or disable total bandwidth metric for all disks. | | False |\n| bandwidth for all disks | Enable or disable bandwidth for all disks metric. | | False |\n| operations for all disks | Enable or disable operations for all disks metric. | | False |\n| queued operations for all disks | Enable or disable queued operations for all disks metric. | | False |\n| utilization percentage for all disks | Enable or disable utilization percentage for all disks metric. | | False |\n| i/o time for all disks | Enable or disable I/O time for all disks metric. | | False |\n| average completed i/o time for all disks | Enable or disable average completed I/O time for all disks metric. | | False |\n| average completed i/o bandwidth for all disks | Enable or disable average completed I/O bandwidth for all disks metric. | | False |\n| average service time for all disks | Enable or disable average service time for all disks metric. | | False |\n| disable by default disks matching | Do not create charts for disks listed. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_disk_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.util | average percentage of time ${label:device} disk was busy over the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per devstat instance\n\nThese metrics give a general vision about I/O events on disks.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.io | io, out | KiB/s |\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | reads, writes, frees | KiB/s |\n| disk.ops | reads, writes, other, frees | operations/s |\n| disk.qops | operations | operations |\n| disk.util | utilization | % of time working |\n| disk.iotime | reads, writes, other, frees | milliseconds/s |\n| disk.await | reads, writes, other, frees | milliseconds/operation |\n| disk.avgsz | reads, writes, frees | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n\n", "integration_type": "collector", "id": "freebsd.plugin-devstat-devstat", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "getifaddrs", "monitored_instance": {"name": "getifaddrs", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# getifaddrs\n\n## Overview\n\nCollect traffic per network interface.\n\nThe plugin calls `getifaddrs` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:getifaddrs]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new interfaces detected at runtime | Enable or disable possibility to discover new interface after plugin starts. | | False |\n| total bandwidth for physical interfaces | Enable or disable total bandwidth for physical interfaces metric. | | False |\n| total packets for physical interfaces | Enable or disable total packets for physical interfaces metric. | | False |\n| total bandwidth for ipv4 interface | Enable or disable total bandwidth for IPv4 interface metric. | | False |\n| total bandwidth for ipv6 interfaces | Enable or disable total bandwidth for ipv6 interfaces metric. | | False |\n| bandwidth for all interfaces | Enable or disable bandwidth for all interfaces metric. | | False |\n| packets for all interfaces | Enable or disable packets for all interfaces metric. | | False |\n| errors for all interfaces | Enable or disable errors for all interfaces metric. | | False |\n| drops for all interfaces | Enable or disable drops for all interfaces metric. | | False |\n| collisions for all interface | Enable or disable collisions for all interface metric. | | False |\n| disable by default interfaces matching | Do not display data for intterfaces listed. | | False |\n| set physical interfaces for system.net | Do not show network traffic for listed interfaces. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n| [ 1m_received_traffic_overflow ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | average inbound utilization for the network interface ${label:device} over the last minute |\n| [ 1m_sent_traffic_overflow ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | average outbound utilization for the network interface ${label:device} over the last minute |\n| [ inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ 1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ 10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n| [ interface_inbound_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.errors | number of inbound errors for the network interface ${label:device} in the last 10 minutes |\n| [ interface_outbound_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.errors | number of outbound errors for the network interface ${label:device} in the last 10 minutes |\n| [ inbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.drops | number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes |\n| [ outbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.drops | number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per getifaddrs instance\n\nGeneral overview about network traffic.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.net | received, sent | kilobits/s |\n| system.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| system.ipv4 | received, sent | kilobits/s |\n| system.ipv6 | received, sent | kilobits/s |\n\n### Per network device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound, outbound | drops/s |\n| net.events | collisions | events/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-getifaddrs-getifaddrs", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "getmntinfo", "monitored_instance": {"name": "getmntinfo", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# getmntinfo\n\n## Overview\n\nCollect information per mount point.\n\nThe plugin calls `getmntinfo` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:getmntinfo]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable new mount points detected at runtime | Cheeck new mount points during runtime. | | False |\n| space usage for all disks | Enable or disable space usage for all disks metric. | | False |\n| inodes usage for all disks | Enable or disable inodes usage for all disks metric. | | False |\n| exclude space metrics on paths | Do not show metrics for listed paths. | | False |\n| exclude space metrics on filesystems | Do not monitor listed filesystems. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ disk_space_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.space | disk ${label:mount_point} space utilization |\n| [ disk_inode_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.inodes | disk ${label:mount_point} inode utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per mount point\n\nThese metrics show detailss about mount point usages.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n", "integration_type": "collector", "id": "freebsd.plugin-getmntinfo-getmntinfo", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "hw.intrcnt", "monitored_instance": {"name": "hw.intrcnt", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# hw.intrcnt\n\n## Overview\n\nGet total number of interrupts\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config option\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| hw.intrcnt | Enable or disable Interrupts metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per hw.intrcnt instance\n\nThese metrics show system interrupts frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.intr | interrupts | interrupts/s |\n| system.interrupts | a dimension per interrupt | interrupts/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-hw.intrcnt-hw.intrcnt", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "ipfw", "monitored_instance": {"name": "ipfw", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "firewall.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# ipfw\n\n## Overview\n\nCollect information about FreeBSD firewall.\n\nThe plugin uses RAW socket to communicate with kernel and collect data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:ipfw]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| counters for static rules | Enable or disable counters for static rules metric. | | False |\n| number of dynamic rules | Enable or disable number of dynamic rules metric. | | False |\n| allocated memory | Enable or disable allocated memory metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ipfw instance\n\nTheese metrics show FreeBSD firewall statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipfw.mem | dynamic, static | bytes |\n| ipfw.packets | a dimension per static rule | packets/s |\n| ipfw.bytes | a dimension per static rule | bytes/s |\n| ipfw.active | a dimension per dynamic rule | rules |\n| ipfw.expired | a dimension per dynamic rule | rules |\n\n", "integration_type": "collector", "id": "freebsd.plugin-ipfw-ipfw", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "kern.cp_time", "monitored_instance": {"name": "kern.cp_time", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# kern.cp_time\n\n## Overview\n\nTotal CPU utilization\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThe netdata main configuration file.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.cp_time | Enable or disable Total CPU usage. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding iowait, nice and steal) |\n| [ 10min_cpu_iowait ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU iowait time over the last 10 minutes |\n| [ 20min_steal_cpu ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU steal time over the last 20 minutes |\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding nice) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.cp_time instance\n\nThese metrics show CPU usage statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | nice, system, user, interrupt, idle | percentage |\n\n### Per core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.cpu | nice, system, user, interrupt, idle | percentage |\n\n", "integration_type": "collector", "id": "freebsd.plugin-kern.cp_time-kern.cp_time", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "kern.ipc.msq", "monitored_instance": {"name": "kern.ipc.msq", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# kern.ipc.msq\n\n## Overview\n\nCollect number of IPC message Queues\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.msq | Enable or disable IPC message queue metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.msq instance\n\nThese metrics show statistics IPC messages statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_msq_queues | queues | queues |\n| system.ipc_msq_messages | messages | messages |\n| system.ipc_msq_size | allocated, used | bytes |\n\n", "integration_type": "collector", "id": "freebsd.plugin-kern.ipc.msq-kern.ipc.msq", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "kern.ipc.sem", "monitored_instance": {"name": "kern.ipc.sem", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# kern.ipc.sem\n\n## Overview\n\nCollect information about semaphore.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.sem | Enable or disable semaphore metrics. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ semaphores_used ](https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf) | system.ipc_semaphores | IPC semaphore utilization |\n| [ semaphore_arrays_used ](https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf) | system.ipc_semaphore_arrays | IPC semaphore arrays utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.sem instance\n\nThese metrics shows counters for semaphores on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_semaphores | semaphores | semaphores |\n| system.ipc_semaphore_arrays | arrays | arrays |\n\n", "integration_type": "collector", "id": "freebsd.plugin-kern.ipc.sem-kern.ipc.sem", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "kern.ipc.shm", "monitored_instance": {"name": "kern.ipc.shm", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "memory.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# kern.ipc.shm\n\n## Overview\n\nCollect shared memory information.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| kern.ipc.shm | Enable or disable shared memory metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per kern.ipc.shm instance\n\nThese metrics give status about current shared memory segments.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_shared_mem_segs | segments | segments |\n| system.ipc_shared_mem_size | allocated | KiB |\n\n", "integration_type": "collector", "id": "freebsd.plugin-kern.ipc.shm-kern.ipc.shm", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet.icmp.stats", "monitored_instance": {"name": "net.inet.icmp.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet.icmp.stats\n\n## Overview\n\nCollect information about ICMP traffic.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.icmp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| IPv4 ICMP packets | Enable or disable IPv4 ICMP packets metric. | | False |\n| IPv4 ICMP error | Enable or disable IPv4 ICMP error metric. | | False |\n| IPv4 ICMP messages | Enable or disable IPv4 ICMP messages metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.icmp.stats instance\n\nThese metrics show ICMP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InEchos, OutEchos | packets/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet.icmp.stats-net.inet.icmp.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet.ip.stats", "monitored_instance": {"name": "net.inet.ip.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet.ip.stats\n\n## Overview\n\nCollect IP stats\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.ip.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 packets | Enable or disable IPv4 packets metric. | | False |\n| ipv4 fragments sent | Enable or disable IPv4 fragments sent metric. | | False |\n| ipv4 fragments assembly | Enable or disable IPv4 fragments assembly metric. | | False |\n| ipv4 errors | Enable or disable IPv4 errors metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.ip.stats instance\n\nThese metrics show IPv4 connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos | packets/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet.ip.stats-net.inet.ip.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet.tcp.states", "monitored_instance": {"name": "net.inet.tcp.states", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet.tcp.states\n\n## Overview\n\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| net.inet.tcp.states | Enable or disable TCP state metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ tcp_connections ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf) | ipv4.tcpsock | IPv4 TCP connections utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.tcp.states instance\n\nA counter for TCP connections.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.tcpsock | connections | active connections |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet.tcp.states-net.inet.tcp.states", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet.tcp.stats", "monitored_instance": {"name": "net.inet.tcp.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet.tcp.stats\n\n## Overview\n\nCollect overall information about TCP connections.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.tcp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 TCP packets | Enable or disable ipv4 TCP packets metric. | | False |\n| ipv4 TCP errors | Enable or disable pv4 TCP errors metric. | | False |\n| ipv4 TCP handshake issues | Enable or disable ipv4 TCP handshake issue metric. | | False |\n| TCP connection aborts | Enable or disable TCP connection aborts metric. | | False |\n| TCP out-of-order queue | Enable or disable TCP out-of-order queue metric. | | False |\n| TCP SYN cookies | Enable or disable TCP SYN cookies metric. | | False |\n| TCP listen issues | Enable or disable TCP listen issues metric. | | False |\n| ECN packets | Enable or disable ECN packets metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.tcp.stats instance\n\nThese metrics show TCP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.tcppackets | received, sent | packets/s |\n| ipv4.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ipv4.tcphandshake | EstabResets, ActiveOpens, PassiveOpens, AttemptFails | events/s |\n| ipv4.tcpconnaborts | baddata, userclosed, nomemory, timeout, linger | connections/s |\n| ipv4.tcpofo | inqueue | packets/s |\n| ipv4.tcpsyncookies | received, sent, failed | packets/s |\n| ipv4.tcplistenissues | overflows | packets/s |\n| ipv4.ecnpkts | InCEPkts, InECT0Pkts, InECT1Pkts, OutECT0Pkts, OutECT1Pkts | packets/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet.tcp.stats-net.inet.tcp.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet.udp.stats", "monitored_instance": {"name": "net.inet.udp.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet.udp.stats\n\n## Overview\n\nCollect information about UDP connections.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet.udp.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv4 UDP packets | Enable or disable ipv4 UDP packets metric. | | False |\n| ipv4 UDP errors | Enable or disable ipv4 UDP errors metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_ipv4_udp_receive_buffer_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP receive buffer errors over the last minute |\n| [ 1m_ipv4_udp_send_buffer_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP send buffer errors over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet.udp.stats instance\n\nThese metrics show UDP connections statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | InErrors, NoPorts, RcvbufErrors, InCsumErrors, IgnoredMulti | events/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet.udp.stats-net.inet.udp.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet6.icmp6.stats", "monitored_instance": {"name": "net.inet6.icmp6.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet6.icmp6.stats\n\n## Overview\n\nCollect information abou IPv6 ICMP\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet6.icmp6.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| icmp | Enable or disable ICMP metric. | | False |\n| icmp redirects | Enable or disable ICMP redirects metric. | | False |\n| icmp errors | Enable or disable ICMP errors metric. | | False |\n| icmp echos | Enable or disable ICMP echos metric. | | False |\n| icmp router | Enable or disable ICMP router metric. | | False |\n| icmp neighbor | Enable or disable ICMP neighbor metric. | | False |\n| icmp types | Enable or disable ICMP types metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet6.icmp6.stats instance\n\nCollect IPv6 ICMP traffic statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet6.icmp6.stats-net.inet6.icmp6.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.inet6.ip6.stats", "monitored_instance": {"name": "net.inet6.ip6.stats", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "network.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.inet6.ip6.stats\n\n## Overview\n\nCollect information abou IPv6 stats.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.inet6.ip6.stats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| ipv6 packets | Enable or disable ipv6 packet metric. | | False |\n| ipv6 fragments sent | Enable or disable ipv6 fragments sent metric. | | False |\n| ipv6 fragments assembly | Enable or disable ipv6 fragments assembly metric. | | False |\n| ipv6 errors | Enable or disable ipv6 errors metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.inet6.ip6.stats instance\n\nThese metrics show general information about IPv6 connections.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.packets | received, sent, forwarded, delivers | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.inet6.ip6.stats-net.inet6.ip6.stats", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "net.isr", "monitored_instance": {"name": "net.isr", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# net.isr\n\n## Overview\n\nCollect information about system softnet stat.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:net.isr]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| netisr | Enable or disable general vision about softnet stat metrics. | | False |\n| netisr per core | Enable or disable softnet stat metric per core. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1min_netdev_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf) | system.softnet_stat | average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog |\n| [ 1min_netdev_budget_ran_outs ](https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf) | system.softnet_stat | average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets) |\n| [ 10min_netisr_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf) | system.softnet_stat | average number of drops in the last minute due to exceeded sysctl net.route.netisr_maxqlen (this can be a cause for dropped packets) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per net.isr instance\n\nThese metrics show statistics about softnet stats.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softnet_stat | dispatched, hybrid_dispatched, qdrops, queued | events/s |\n\n### Per core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softnet_stat | dispatched, hybrid_dispatched, qdrops, queued | events/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-net.isr-net.isr", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "system.ram", "monitored_instance": {"name": "system.ram", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "memory.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# system.ram\n\n## Overview\n\nShow information about system memory usage.\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| system.ram | Enable or disable system RAM metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per system.ram instance\n\nThis metric shows RAM usage statistics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ram | free, active, inactive, wired, cache, laundry, buffers | MiB |\n| mem.available | avail | MiB |\n\n", "integration_type": "collector", "id": "freebsd.plugin-system.ram-system.ram", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "uptime", "monitored_instance": {"name": "uptime", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# uptime\n\n## Overview\n\nShow period of time server is up.\n\nThe plugin calls `clock_gettime` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.loadavg | Enable or disable load average metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per uptime instance\n\nHow long the system is running.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "freebsd.plugin-uptime-uptime", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.loadavg", "monitored_instance": {"name": "vm.loadavg", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.loadavg\n\n## Overview\n\nSystem Load Average\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.loadavg | Enable or disable load average metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ load_cpu_number ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | number of active CPU cores in the system |\n| [ load_average_15 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system fifteen-minute load average |\n| [ load_average_5 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system five-minute load average |\n| [ load_average_1 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system one-minute load average |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.loadavg instance\n\nMonitoring for number of threads running or waiting.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.load | load1, load5, load15 | load |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.loadavg-vm.loadavg", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.stats.sys.v_intr", "monitored_instance": {"name": "vm.stats.sys.v_intr", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.stats.sys.v_intr\n\n## Overview\n\nDevice interrupts\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config option\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_intr | Enable or disable device interrupts metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_intr instance\n\nThe metric show device interrupt frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.dev_intr | interrupts | interrupts/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.stats.sys.v_intr-vm.stats.sys.v_intr", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.stats.sys.v_soft", "monitored_instance": {"name": "vm.stats.sys.v_soft", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.stats.sys.v_soft\n\n## Overview\n\nSoftware Interrupt\n\nvm.stats.sys.v_soft\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config option\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_soft | Enable or disable software inerrupts metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_soft instance\n\nThis metric shows software interrupt frequency.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.soft_intr | interrupts | interrupts/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.stats.sys.v_soft-vm.stats.sys.v_soft", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.stats.sys.v_swtch", "monitored_instance": {"name": "vm.stats.sys.v_swtch", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.stats.sys.v_swtch\n\n## Overview\n\nCPU context switch\n\nThe plugin calls `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.sys.v_swtch | Enable or disable CPU context switch metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.sys.v_swtch instance\n\nThe metric count the number of context switches happening on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ctxt | switches | context switches/s |\n| system.forks | started | processes/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.stats.sys.v_swtch-vm.stats.sys.v_swtch", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.stats.vm.v_pgfaults", "monitored_instance": {"name": "vm.stats.vm.v_pgfaults", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "memory.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.stats.vm.v_pgfaults\n\n## Overview\n\nCollect memory page faults events.\n\nThe plugin calls `sysctl` function to collect necessary data\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.vm.v_pgfaults | Enable or disable Memory page fault metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.vm.v_pgfaults instance\n\nThe number of page faults happened on host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pgfaults | memory, io_requiring, cow, cow_optimized, in_transit | page faults/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.stats.vm.v_pgfaults-vm.stats.vm.v_pgfaults", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.stats.vm.v_swappgs", "monitored_instance": {"name": "vm.stats.vm.v_swappgs", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "memory.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.stats.vm.v_swappgs\n\n## Overview\n\nThe metric swap amount of data read from and written to SWAP.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.stats.vm.v_swappgs | Enable or disable infoormation about SWAP I/O metric. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 30min_ram_swapped_out ](https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf) | mem.swapio | percentage of the system RAM swapped in the last 30 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.stats.vm.v_swappgs instance\n\nThis metric shows events happening on SWAP.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapio | io, out | KiB/s |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.stats.vm.v_swappgs-vm.stats.vm.v_swappgs", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.swap_info", "monitored_instance": {"name": "vm.swap_info", "link": "", "categories": ["data-collection.freebsd"], "icon_filename": "freebsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.swap_info\n\n## Overview\n\nCollect information about SWAP memory.\n\nThe plugin calls `sysctlnametomib` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| vm.swap_info | Enable or disable SWAP metrics. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ used_swap ](https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf) | mem.swap | swap memory utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.swap_info instance\n\nThis metric shows the SWAP usage.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swap | free, used | MiB |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.swap_info-vm.swap_info", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "vm.vmtotal", "monitored_instance": {"name": "vm.vmtotal", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "memory.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# vm.vmtotal\n\n## Overview\n\nCollect Virtual Memory information from host.\n\nThe plugin calls function `sysctl` to collect data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:vm.vmtotal]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable total processes | Number of active processes. | | False |\n| processes running | Show number of processes running or blocked. | | False |\n| real memory | Memeory used on host. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ active_processes ](https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf) | system.active_processes | system process IDs (PID) space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vm.vmtotal instance\n\nThese metrics show an overall vision about processes running.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.active_processes | active | processes |\n| system.processes | running, blocked | processes |\n| mem.real | used | MiB |\n\n", "integration_type": "collector", "id": "freebsd.plugin-vm.vmtotal-vm.vmtotal", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freebsd.plugin", "module_name": "zfs", "monitored_instance": {"name": "zfs", "link": "https://www.freebsd.org/", "categories": ["data-collection.freebsd"], "icon_filename": "filesystem.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# zfs\n\n## Overview\n\nCollect metrics for ZFS filesystem\n\nThe plugin uses `sysctl` function to collect necessary data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freebsd:zfs_arcstats]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| show zero charts | Do not show charts with zero metrics. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_memory_throttle ](https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf) | zfs.memory_ops | number of times ZFS had to limit the ARC growth in the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zfs instance\n\nThese metrics show detailed information about ZFS filesystem.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfs.arc_size | arcsz, target, min, max | MiB |\n| zfs.l2_size | actual, size | MiB |\n| zfs.reads | arc, demand, prefetch, metadata, l2 | reads/s |\n| zfs.bytes | read, write | KiB/s |\n| zfs.hits | hits, misses | percentage |\n| zfs.hits_rate | hits, misses | events/s |\n| zfs.dhits | hits, misses | percentage |\n| zfs.dhits_rate | hits, misses | events/s |\n| zfs.phits | hits, misses | percentage |\n| zfs.phits_rate | hits, misses | events/s |\n| zfs.mhits | hits, misses | percentage |\n| zfs.mhits_rate | hits, misses | events/s |\n| zfs.l2hits | hits, misses | percentage |\n| zfs.l2hits_rate | hits, misses | events/s |\n| zfs.list_hits | mfu, mfu_ghost, mru, mru_ghost | hits/s |\n| zfs.arc_size_breakdown | recent, frequent | percentage |\n| zfs.memory_ops | throttled | operations/s |\n| zfs.important_ops | evict_skip, deleted, mutex_miss, hash_collisions | operations/s |\n| zfs.actual_hits | hits, misses | percentage |\n| zfs.actual_hits_rate | hits, misses | events/s |\n| zfs.demand_data_hits | hits, misses | percentage |\n| zfs.demand_data_hits_rate | hits, misses | events/s |\n| zfs.prefetch_data_hits | hits, misses | percentage |\n| zfs.prefetch_data_hits_rate | hits, misses | events/s |\n| zfs.hash_elements | current, max | elements |\n| zfs.hash_chains | current, max | chains |\n| zfs.trim_bytes | TRIMmed | bytes |\n| zfs.trim_requests | successful, failed, unsupported | requests |\n\n", "integration_type": "collector", "id": "freebsd.plugin-zfs-zfs", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freebsd.plugin/metadata.yaml"}, {"meta": {"plugin_name": "freeipmi.plugin", "module_name": "sensors", "monitored_instance": {"name": "Intelligent Platform Management Interface (IPMI)", "link": "https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "netdata.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["sensors", "ipmi", "freeipmi", "ipmimonitoring"], "most_popular": true}, "overview": "# Intelligent Platform Management Interface (IPMI)\n\n## Overview\n\n\"Monitor enterprise server sensor readings, event log entries, and hardware statuses to ensure reliable server operations.\"\n\n\nThe plugin uses open source library IPMImonitoring to communicate with sensors.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nLinux kernel module for IPMI can create big overhead.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Preliminary actions\n\nIf you have not previously used IPMI on your system, you will probably need to run the ipmimonitoring command as root to initialize IPMI settings so that the Netdata plugin works correctly. It should return information about available sensors on the system.\n\nIn some distributions libipmimonitoring.pc is located in a non-standard directory, which can cause building the plugin to fail when building Netdata from source. In that case you should find the file and link it to the standard pkg-config directory. Usually, running sudo ln -s /usr/lib/$(uname -m)-linux-gnu/pkgconfig/libipmimonitoring.pc/libipmimonitoring.pc /usr/lib/pkgconfig/libipmimonitoring.pc resolves this issue.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:freeipmi]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThis tool receives command line options that are visible when user run: `./usr/libexec/netdata/plugins.d/freeipmi.plugin --help`\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| command options | Variable used to pass arguments for the plugin. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ipmi_sensor_state ](https://github.com/netdata/netdata/blob/master/health/health.d/ipmi.conf) | ipmi.sensor_state | IPMI sensor ${label:sensor} (${label:component}) state |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per sensor\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| sensor | The sensor name |\n| type | One of 45 recognized sensor types (Battery, Voltage...) |\n| component | One of 25 recognized components (Processor, Peripheral). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipmi.sel | events | events |\n| ipmi.sensor_state | nominal, critical, warning, unknown | state |\n| ipmi.sensor_temperature_c | temperature | Celsius |\n| ipmi.sensor_temperature_f | temperature | Fahrenheit |\n| ipmi.sensor_voltage | voltage | Volts |\n| ipmi.sensor_ampere | ampere | Amps |\n| ipmi.sensor_fan_speed | rotations | RPM |\n| ipmi.sensor_power | power | Watts |\n| ipmi.sensor_reading_percent | percentage | % |\n\n", "integration_type": "collector", "id": "freeipmi.plugin-sensors-Intelligent_Platform_Management_Interface_(IPMI)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/freeipmi.plugin/metadata.yaml"}, {"meta": {"module_name": "activemq", "plugin_name": "go.d.plugin", "monitored_instance": {"categories": ["data-collection.message-brokers"], "icon_filename": "activemq.png", "name": "ActiveMQ", "link": "https://activemq.apache.org/"}, "alternative_monitored_instances": [], "keywords": ["message broker"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "apps.plugin", "module_name": "apps"}]}}}, "overview": "# ActiveMQ\n\n## Overview\n\nThis collector monitors ActiveMQ queues and topics.\n\nIt collects metrics by sending HTTP requests to the Web Console API.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host that provide metrics on port 8161.\nOn startup, it tries to collect metrics from:\n\n- http://localhost:8161\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/activemq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/activemq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| webadmin | Webadmin root path. | | True |\n| max_queues | Maximum number of concurrently collected queues. | | False |\n| max_topics | Maximum number of concurrently collected topics. | | False |\n| queues_filter | Queues filter. Syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| topics_filter | Topics filter. Syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| timeout | HTTP request timeout. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Filters and limits\n\nUsing filters and limits for queues and topics.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n max_queues: 100\n max_topics: 100\n queues_filter: '!sandr* *'\n topics_filter: '!sandr* *'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8161\n webadmin: admin\n\n - name: remote\n url: http://192.0.2.1:8161\n webadmin: admin\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `activemq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m activemq\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ActiveMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| activemq.messages | enqueued, dequeued | messages/s |\n| activemq.unprocessed_messages | unprocessed | messages |\n| activemq.consumers | consumers | consumers |\n\n", "integration_type": "collector", "id": "go.d.plugin-activemq-ActiveMQ", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/activemq/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "apache", "monitored_instance": {"name": "Apache", "link": "https://httpd.apache.org/", "icon_filename": "apache.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["webserver"], "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "weblog"}, {"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Apache\n\n## Overview\n\nThis collector monitors the activity and performance of Apache servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Apache location [server-status](https://httpd.apache.org/docs/2.4/mod/mod_status.html), \nwhich is a built-in location that provides metrics about the Apache server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Apache instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable Apache status support\n\n- Enable and configure [status_module](https://httpd.apache.org/docs/2.4/mod/mod_status.html).\n- Ensure that you have [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/mod_status.html#troubleshoot) set on (enabled by default since Apache v2.3.6).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/apache.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/apache.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nApache with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apache` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m apache\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nAll metrics available only if [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus) is on.\n\n\n### Per Apache instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Basic | Extended |\n|:------|:----------|:----|:---:|:---:|\n| apache.connections | connections | connections | \u2022 | \u2022 |\n| apache.conns_async | keepalive, closing, writing | connections | \u2022 | \u2022 |\n| apache.workers | idle, busy | workers | \u2022 | \u2022 |\n| apache.scoreboard | waiting, starting, reading, sending, keepalive, dns_lookup, closing, logging, finishing, idle_cleanup, open | connections | \u2022 | \u2022 |\n| apache.requests | requests | requests/s | | \u2022 |\n| apache.net | sent | kilobit/s | | \u2022 |\n| apache.reqpersec | requests | requests/s | | \u2022 |\n| apache.bytespersec | served | KiB/s | | \u2022 |\n| apache.bytesperreq | size | KiB | | \u2022 |\n| apache.uptime | uptime | seconds | | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-apache-Apache", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/apache/metadata.yaml"}, {"meta": {"module_name": "apache", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Energi Core Wallet", "link": "", "icon_filename": "energi.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": ["energid"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Energi Core Wallet\n\n## Overview\n\nThis module monitors Energi Core Wallet instances.\nWorks only with [Generation 2 wallets](https://docs.energi.software/en/downloads/gen2-core-wallet).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/energid.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/energid.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9796\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9796\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9796\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9796\n\n - name: remote\n url: http://192.0.2.1:9796\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apache` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m apache\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Energi Core Wallet instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| energid.blockindex | blocks, headers | count |\n| energid.difficulty | difficulty | difficulty |\n| energid.mempool | max, usage, tx_size | bytes |\n| energid.secmem | total, used, free, locked | bytes |\n| energid.network | connections | connections |\n| energid.timeoffset | timeoffset | seconds |\n| energid.utxo_transactions | transactions, output_transactions | transactions |\n\n", "integration_type": "collector", "id": "go.d.plugin-apache-Energi_Core_Wallet", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/energid/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "apache", "monitored_instance": {"name": "HTTPD", "link": "https://httpd.apache.org/", "icon_filename": "apache.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["webserver"], "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "weblog"}, {"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# HTTPD\n\n## Overview\n\nThis collector monitors the activity and performance of Apache servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Apache location [server-status](https://httpd.apache.org/docs/2.4/mod/mod_status.html), \nwhich is a built-in location that provides metrics about the Apache server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Apache instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable Apache status support\n\n- Enable and configure [status_module](https://httpd.apache.org/docs/2.4/mod/mod_status.html).\n- Ensure that you have [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/mod_status.html#troubleshoot) set on (enabled by default since Apache v2.3.6).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/apache.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/apache.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nApache with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `apache` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m apache\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nAll metrics available only if [ExtendedStatus](https://httpd.apache.org/docs/2.4/mod/core.html#extendedstatus) is on.\n\n\n### Per Apache instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Basic | Extended |\n|:------|:----------|:----|:---:|:---:|\n| apache.connections | connections | connections | \u2022 | \u2022 |\n| apache.conns_async | keepalive, closing, writing | connections | \u2022 | \u2022 |\n| apache.workers | idle, busy | workers | \u2022 | \u2022 |\n| apache.scoreboard | waiting, starting, reading, sending, keepalive, dns_lookup, closing, logging, finishing, idle_cleanup, open | connections | \u2022 | \u2022 |\n| apache.requests | requests | requests/s | | \u2022 |\n| apache.net | sent | kilobit/s | | \u2022 |\n| apache.reqpersec | requests | requests/s | | \u2022 |\n| apache.bytespersec | served | KiB/s | | \u2022 |\n| apache.bytesperreq | size | KiB | | \u2022 |\n| apache.uptime | uptime | seconds | | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-apache-HTTPD", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/apache/metadata.yaml"}, {"meta": {"module_name": "cassandra", "plugin_name": "go.d.plugin", "monitored_instance": {"categories": ["data-collection.database-servers"], "icon_filename": "cassandra.svg", "name": "Cassandra", "link": "https://cassandra.apache.org/_/index.html"}, "alternative_monitored_instances": [], "keywords": ["nosql", "dbms", "db", "database"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Cassandra\n\n## Overview\n\nThis collector gathers metrics about client requests, cache hits, and many more, while also providing metrics per each thread pool.\n\n\nThe [JMX Exporter](https://github.com/prometheus/jmx_exporter) is used to fetch metrics from a Cassandra instance and make them available at an endpoint like `http://127.0.0.1:7072/metrics`.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host that provide metrics on port 7072.\n\nOn startup, it tries to collect metrics from:\n\n- http://127.0.0.1:7072/metrics\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure Cassandra with Prometheus JMX Exporter\n\nTo configure Cassandra with the [JMX Exporter](https://github.com/prometheus/jmx_exporter):\n\n> **Note**: paths can differ depends on your setup.\n\n- Download latest [jmx_exporter](https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/) jar file\n and install it in a directory where Cassandra can access it.\n- Add\n the [jmx_exporter.yaml](https://raw.githubusercontent.com/netdata/go.d.plugin/master/modules/cassandra/jmx_exporter.yaml)\n file to `/etc/cassandra`.\n- Add the following line to `/etc/cassandra/cassandra-env.sh`\n ```\n JVM_OPTS=\"$JVM_OPTS $JVM_EXTRA_OPTS -javaagent:/opt/jmx_exporter/jmx_exporter.jar=7072:/etc/cassandra/jmx_exporter.yaml\n ```\n- Restart cassandra service.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/cassandra.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/cassandra.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n\n```\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nLocal server with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:7072/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:7072/metrics\n\n - name: remote\n url: http://192.0.2.1:7072/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `cassandra` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m cassandra\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Cassandra instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cassandra.client_requests_rate | read, write | requests/s |\n| cassandra.client_request_read_latency_histogram | p50, p75, p95, p98, p99, p999 | seconds |\n| cassandra.client_request_write_latency_histogram | p50, p75, p95, p98, p99, p999 | seconds |\n| cassandra.client_requests_latency | read, write | seconds |\n| cassandra.row_cache_hit_ratio | hit_ratio | percentage |\n| cassandra.row_cache_hit_rate | hits, misses | events/s |\n| cassandra.row_cache_utilization | used | percentage |\n| cassandra.row_cache_size | size | bytes |\n| cassandra.key_cache_hit_ratio | hit_ratio | percentage |\n| cassandra.key_cache_hit_rate | hits, misses | events/s |\n| cassandra.key_cache_utilization | used | percentage |\n| cassandra.key_cache_size | size | bytes |\n| cassandra.storage_live_disk_space_used | used | bytes |\n| cassandra.compaction_completed_tasks_rate | completed | tasks/s |\n| cassandra.compaction_pending_tasks_count | pending | tasks |\n| cassandra.compaction_compacted_rate | compacted | bytes/s |\n| cassandra.jvm_memory_used | heap, nonheap | bytes |\n| cassandra.jvm_gc_rate | parnew, cms | gc/s |\n| cassandra.jvm_gc_time | parnew, cms | seconds |\n| cassandra.dropped_messages_rate | dropped | messages/s |\n| cassandra.client_requests_timeouts_rate | read, write | timeout/s |\n| cassandra.client_requests_unavailables_rate | read, write | exceptions/s |\n| cassandra.client_requests_failures_rate | read, write | failures/s |\n| cassandra.storage_exceptions_rate | storage | exceptions/s |\n\n### Per thread pool\n\nMetrics related to Cassandra's thread pools. Each thread pool provides its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thread_pool | thread pool name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cassandra.thread_pool_active_tasks_count | active | tasks |\n| cassandra.thread_pool_pending_tasks_count | pending | tasks |\n| cassandra.thread_pool_blocked_tasks_count | blocked | tasks |\n| cassandra.thread_pool_blocked_tasks_rate | blocked | tasks/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-cassandra-Cassandra", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/cassandra/metadata.yaml"}, {"meta": {"module_name": "chrony", "plugin_name": "go.d.plugin", "monitored_instance": {"categories": ["data-collection.system-clock-and-ntp"], "icon_filename": "chrony.jpg", "name": "Chrony", "link": "https://chrony.tuxfamily.org/"}, "alternative_monitored_instances": [], "keywords": [], "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}, "most_popular": false}, "overview": "# Chrony\n\n## Overview\n\nThis collector monitors the system's clock performance and peers activity status\n\nIt collects metrics by sending UDP packets to chronyd using the Chrony communication protocol v6.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers Chrony instance running on the local host and listening on port 323.\nOn startup, it tries to collect metrics from:\n\n- 127.0.0.1:323\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/chrony.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/chrony.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address. The format is IP:PORT. | | True |\n| timeout | Connection timeout. Zero means no timeout. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:323\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:323\n\n - name: remote\n address: 192.0.2.1:323\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `chrony` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m chrony\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Chrony instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| chrony.stratum | stratum | level |\n| chrony.current_correction | current_correction | seconds |\n| chrony.root_delay | root_delay | seconds |\n| chrony.root_dispersion | root_delay | seconds |\n| chrony.last_offset | offset | seconds |\n| chrony.rms_offset | offset | seconds |\n| chrony.frequency | frequency | ppm |\n| chrony.residual_frequency | residual_frequency | ppm |\n| chrony.skew | skew | ppm |\n| chrony.update_interval | update_interval | seconds |\n| chrony.ref_measurement_time | ref_measurement_time | seconds |\n| chrony.leap_status | normal, insert_second, delete_second, unsynchronised | status |\n| chrony.activity | online, offline, burst_online, burst_offline, unresolved | sources |\n\n", "integration_type": "collector", "id": "go.d.plugin-chrony-Chrony", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/chrony/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "cockroachdb", "monitored_instance": {"name": "CockroachDB", "link": "https://www.cockroachlabs.com/", "icon_filename": "cockroachdb.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["cockroachdb", "databases"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# CockroachDB\n\n## Overview\n\nThis collector monitors CockroachDB servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/cockroachdb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/cockroachdb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nCockroachDB with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080/_status/vars\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/_status/vars\n\n - name: remote\n url: http://203.0.113.10:8080/_status/vars\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `cockroachdb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m cockroachdb\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ cockroachdb_used_storage_capacity ](https://github.com/netdata/netdata/blob/master/health/health.d/cockroachdb.conf) | cockroachdb.storage_used_capacity_percentage | storage capacity utilization |\n| [ cockroachdb_used_usable_storage_capacity ](https://github.com/netdata/netdata/blob/master/health/health.d/cockroachdb.conf) | cockroachdb.storage_used_capacity_percentage | storage usable space utilization |\n| [ cockroachdb_unavailable_ranges ](https://github.com/netdata/netdata/blob/master/health/health.d/cockroachdb.conf) | cockroachdb.ranges_replication_problem | number of ranges with fewer live replicas than needed for quorum |\n| [ cockroachdb_underreplicated_ranges ](https://github.com/netdata/netdata/blob/master/health/health.d/cockroachdb.conf) | cockroachdb.ranges_replication_problem | number of ranges with fewer live replicas than the replication target |\n| [ cockroachdb_open_file_descriptors_limit ](https://github.com/netdata/netdata/blob/master/health/health.d/cockroachdb.conf) | cockroachdb.process_file_descriptors | open file descriptors utilization (against softlimit) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CockroachDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cockroachdb.process_cpu_time_combined_percentage | used | percentage |\n| cockroachdb.process_cpu_time_percentage | user, sys | percentage |\n| cockroachdb.process_cpu_time | user, sys | ms |\n| cockroachdb.process_memory | rss | KiB |\n| cockroachdb.process_file_descriptors | open | fd |\n| cockroachdb.process_uptime | uptime | seconds |\n| cockroachdb.host_disk_bandwidth | read, write | KiB |\n| cockroachdb.host_disk_operations | reads, writes | operations |\n| cockroachdb.host_disk_iops_in_progress | in_progress | iops |\n| cockroachdb.host_network_bandwidth | received, sent | kilobits |\n| cockroachdb.host_network_packets | received, sent | packets |\n| cockroachdb.live_nodes | live_nodes | nodes |\n| cockroachdb.node_liveness_heartbeats | successful, failed | heartbeats |\n| cockroachdb.total_storage_capacity | total | KiB |\n| cockroachdb.storage_capacity_usability | usable, unusable | KiB |\n| cockroachdb.storage_usable_capacity | available, used | KiB |\n| cockroachdb.storage_used_capacity_percentage | total, usable | percentage |\n| cockroachdb.sql_connections | active | connections |\n| cockroachdb.sql_bandwidth | received, sent | KiB |\n| cockroachdb.sql_statements_total | started, executed | statements |\n| cockroachdb.sql_errors | statement, transaction | errors |\n| cockroachdb.sql_started_ddl_statements | ddl | statements |\n| cockroachdb.sql_executed_ddl_statements | ddl | statements |\n| cockroachdb.sql_started_dml_statements | select, update, delete, insert | statements |\n| cockroachdb.sql_executed_dml_statements | select, update, delete, insert | statements |\n| cockroachdb.sql_started_tcl_statements | begin, commit, rollback, savepoint, savepoint_cockroach_restart, release_savepoint_cockroach_restart, rollback_to_savepoint_cockroach_restart | statements |\n| cockroachdb.sql_executed_tcl_statements | begin, commit, rollback, savepoint, savepoint_cockroach_restart, release_savepoint_cockroach_restart, rollback_to_savepoint_cockroach_restart | statements |\n| cockroachdb.sql_active_distributed_queries | active | queries |\n| cockroachdb.sql_distributed_flows | active, queued | flows |\n| cockroachdb.live_bytes | applications, system | KiB |\n| cockroachdb.logical_data | keys, values | KiB |\n| cockroachdb.logical_data_count | keys, values | num |\n| cockroachdb.kv_transactions | committed, fast-path_committed, aborted | transactions |\n| cockroachdb.kv_transaction_restarts | write_too_old, write_too_old_multiple, forwarded_timestamp, possible_reply, async_consensus_failure, read_within_uncertainty_interval, aborted, push_failure, unknown | restarts |\n| cockroachdb.ranges | ranges | ranges |\n| cockroachdb.ranges_replication_problem | unavailable, under_replicated, over_replicated | ranges |\n| cockroachdb.range_events | split, add, remove, merge | events |\n| cockroachdb.range_snapshot_events | generated, applied_raft_initiated, applied_learner, applied_preemptive | events |\n| cockroachdb.rocksdb_read_amplification | reads | reads/query |\n| cockroachdb.rocksdb_table_operations | compactions, flushes | operations |\n| cockroachdb.rocksdb_cache_usage | used | KiB |\n| cockroachdb.rocksdb_cache_operations | hits, misses | operations |\n| cockroachdb.rocksdb_cache_hit_rate | hit_rate | percentage |\n| cockroachdb.rocksdb_sstables | sstables | sstables |\n| cockroachdb.replicas | replicas | replicas |\n| cockroachdb.replicas_quiescence | quiescent, active | replicas |\n| cockroachdb.replicas_leaders | leaders, not_leaseholders | replicas |\n| cockroachdb.replicas_leaseholders | leaseholders | leaseholders |\n| cockroachdb.queue_processing_failures | gc, replica_gc, replication, split, consistency, raft_log, raft_snapshot, time_series_maintenance | failures |\n| cockroachdb.rebalancing_queries | avg | queries/s |\n| cockroachdb.rebalancing_writes | avg | writes/s |\n| cockroachdb.timeseries_samples | written | samples |\n| cockroachdb.timeseries_write_errors | write | errors |\n| cockroachdb.timeseries_write_bytes | written | KiB |\n| cockroachdb.slow_requests | acquiring_latches, acquiring_lease, in_raft | requests |\n| cockroachdb.code_heap_memory_usage | go, cgo | KiB |\n| cockroachdb.goroutines | goroutines | goroutines |\n| cockroachdb.gc_count | gc | invokes |\n| cockroachdb.gc_pause | pause | us |\n| cockroachdb.cgo_calls | cgo | calls |\n\n", "integration_type": "collector", "id": "go.d.plugin-cockroachdb-CockroachDB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/cockroachdb/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "consul", "monitored_instance": {"name": "Consul", "link": "https://www.consul.io/", "categories": ["data-collection.service-discovery-registry"], "icon_filename": "consul.svg"}, "alternative_monitored_instances": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["service networking platform", "hashicorp"], "most_popular": true}, "overview": "# Consul\n\n## Overview\n\nThis collector monitors [key metrics](https://developer.hashicorp.com/consul/docs/agent/telemetry#key-metrics) of Consul Agents: transaction timings, leadership changes, memory usage and more.\n\n\nIt periodically sends HTTP requests to [Consul REST API](https://developer.hashicorp.com/consul/api-docs).\n\nUsed endpoints:\n\n- [/operator/autopilot/health](https://developer.hashicorp.com/consul/api-docs/operator/autopilot#read-health)\n- [/agent/checks](https://developer.hashicorp.com/consul/api-docs/agent/check#list-checks)\n- [/agent/self](https://developer.hashicorp.com/consul/api-docs/agent#read-configuration)\n- [/agent/metrics](https://developer.hashicorp.com/consul/api-docs/agent#view-metrics)\n- [/coordinate/nodes](https://developer.hashicorp.com/consul/api-docs/coordinate#read-lan-coordinates-for-all-nodes)\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector discovers instances running on the local host, that provide metrics on port 8500.\n\nOn startup, it tries to collect metrics from:\n\n- http://localhost:8500\n- http://127.0.0.1:8500\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable Prometheus telemetry\n\n[Enable](https://developer.hashicorp.com/consul/docs/agent/config/config-files#telemetry-prometheus_retention_time) telemetry on your Consul agent, by increasing the value of `prometheus_retention_time` from `0`.\n\n\n#### Add required ACLs to Token\n\nRequired **only if authentication is enabled**.\n\n| ACL | Endpoint |\n|:---------------:|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `operator:read` | [autopilot health status](https://developer.hashicorp.com/consul/api-docs/operator/autopilot#read-health) |\n| `node:read` | [checks](https://developer.hashicorp.com/consul/api-docs/agent/check#list-checks) |\n| `agent:read` | [configuration](https://developer.hashicorp.com/consul/api-docs/agent#read-configuration), [metrics](https://developer.hashicorp.com/consul/api-docs/agent#view-metrics), and [lan coordinates](https://developer.hashicorp.com/consul/api-docs/coordinate#read-lan-coordinates-for-all-nodes) |\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/consul.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/consul.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| acl_token | ACL token used in every request. | | False |\n| max_checks | Checks processing/charting limit. | | False |\n| max_filter | Checks processing/charting filter. Uses [simple patterns](https://github.com/netdata/netdata/blob/master/libnetdata/simple_pattern/README.md). | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: \"ec15675e-2999-d789-832e-8c4794daa8d7\"\n\n```\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: \"ec15675e-2999-d789-832e-8c4794daa8d7\"\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8500\n acl_token: \"ec15675e-2999-d789-832e-8c4794daa8d7\"\n\n - name: remote\n url: http://203.0.113.10:8500\n acl_token: \"ada7f751-f654-8872-7f93-498e799158b6\"\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `consul` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m consul\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ consul_node_health_check_status ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.node_health_check_status | node health check ${label:check_name} has failed on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_service_health_check_status ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.service_health_check_status | service health check ${label:check_name} for service ${label:service_name} has failed on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_client_rpc_requests_exceeded ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.client_rpc_requests_exceeded_rate | number of rate-limited RPC requests made by server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_client_rpc_requests_failed ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.client_rpc_requests_failed_rate | number of failed RPC requests made by server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_gc_pause_time ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.gc_pause_time | time spent in stop-the-world garbage collection pauses on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_autopilot_health_status ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.autopilot_health_status | datacenter ${label:datacenter} cluster is unhealthy as reported by server ${label:node_name} |\n| [ consul_autopilot_server_health_status ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.autopilot_server_health_status | server ${label:node_name} from datacenter ${label:datacenter} is unhealthy |\n| [ consul_raft_leader_last_contact_time ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.raft_leader_last_contact_time | median time elapsed since leader server ${label:node_name} datacenter ${label:datacenter} was last able to contact the follower nodes |\n| [ consul_raft_leadership_transitions ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.raft_leadership_transitions_rate | there has been a leadership change and server ${label:node_name} datacenter ${label:datacenter} has become the leader |\n| [ consul_raft_thread_main_saturation ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.raft_thread_main_saturation_perc | average saturation of the main Raft goroutine on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_raft_thread_fsm_saturation ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.raft_thread_fsm_saturation_perc | average saturation of the FSM Raft goroutine on server ${label:node_name} datacenter ${label:datacenter} |\n| [ consul_license_expiration_time ](https://github.com/netdata/netdata/blob/master/health/health.d/consul.conf) | consul.license_expiration_time | Consul Enterprise licence expiration time on node ${label:node_name} datacenter ${label:datacenter} |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe set of metrics depends on the [Consul Agent mode](https://developer.hashicorp.com/consul/docs/install/glossary#agent).\n\n\n### Per Consul instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.client_rpc_requests_rate | rpc | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.client_rpc_requests_exceeded_rate | exceeded | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.client_rpc_requests_failed_rate | failed | requests/s | \u2022 | \u2022 | \u2022 |\n| consul.memory_allocated | allocated | bytes | \u2022 | \u2022 | \u2022 |\n| consul.memory_sys | sys | bytes | \u2022 | \u2022 | \u2022 |\n| consul.gc_pause_time | gc_pause | seconds | \u2022 | \u2022 | \u2022 |\n| consul.kvs_apply_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.kvs_apply_operations_rate | kvs_apply | ops/s | \u2022 | \u2022 | |\n| consul.txn_apply_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.txn_apply_operations_rate | txn_apply | ops/s | \u2022 | \u2022 | |\n| consul.autopilot_health_status | healthy, unhealthy | status | \u2022 | \u2022 | |\n| consul.autopilot_failure_tolerance | failure_tolerance | servers | \u2022 | \u2022 | |\n| consul.autopilot_server_health_status | healthy, unhealthy | status | \u2022 | \u2022 | |\n| consul.autopilot_server_stable_time | stable | seconds | \u2022 | \u2022 | |\n| consul.autopilot_server_serf_status | active, failed, left, none | status | \u2022 | \u2022 | |\n| consul.autopilot_server_voter_status | voter, not_voter | status | \u2022 | \u2022 | |\n| consul.network_lan_rtt | min, max, avg | ms | \u2022 | \u2022 | |\n| consul.raft_commit_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | | |\n| consul.raft_commits_rate | commits | commits/s | \u2022 | | |\n| consul.raft_leader_last_contact_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | | |\n| consul.raft_leader_oldest_log_age | oldest_log_age | seconds | \u2022 | | |\n| consul.raft_follower_last_contact_leader_time | leader_last_contact | ms | | \u2022 | |\n| consul.raft_rpc_install_snapshot_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | | \u2022 | |\n| consul.raft_leader_elections_rate | leader | elections/s | \u2022 | \u2022 | |\n| consul.raft_leadership_transitions_rate | leadership | transitions/s | \u2022 | \u2022 | |\n| consul.server_leadership_status | leader, not_leader | status | \u2022 | \u2022 | |\n| consul.raft_thread_main_saturation_perc | quantile_0.5, quantile_0.9, quantile_0.99 | percentage | \u2022 | \u2022 | |\n| consul.raft_thread_fsm_saturation_perc | quantile_0.5, quantile_0.9, quantile_0.99 | percentage | \u2022 | \u2022 | |\n| consul.raft_fsm_last_restore_duration | last_restore_duration | ms | \u2022 | \u2022 | |\n| consul.raft_boltdb_freelist_bytes | freelist | bytes | \u2022 | \u2022 | |\n| consul.raft_boltdb_logs_per_batch_rate | written | logs/s | \u2022 | \u2022 | |\n| consul.raft_boltdb_store_logs_time | quantile_0.5, quantile_0.9, quantile_0.99 | ms | \u2022 | \u2022 | |\n| consul.license_expiration_time | license_expiration | seconds | \u2022 | \u2022 | \u2022 |\n\n### Per node check\n\nMetrics about checks on Node level.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter Identifier |\n| node_name | The node's name |\n| check_name | The check's name |\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.node_health_check_status | passing, maintenance, warning, critical | status | \u2022 | \u2022 | \u2022 |\n\n### Per service check\n\nMetrics about checks at a Service level.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| datacenter | Datacenter Identifier |\n| node_name | The node's name |\n| check_name | The check's name |\n| service_name | The service's name |\n\nMetrics:\n\n| Metric | Dimensions | Unit | Leader | Follower | Client |\n|:------|:----------|:----|:---:|:---:|:---:|\n| consul.service_health_check_status | passing, maintenance, warning, critical | status | \u2022 | \u2022 | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-consul-Consul", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/consul/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "coredns", "monitored_instance": {"name": "CoreDNS", "link": "https://coredns.io/", "icon_filename": "coredns.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["coredns", "dns", "kubernetes"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# CoreDNS\n\n## Overview\n\nThis collector monitors CoreDNS instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/coredns.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/coredns.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| per_server_stats | Server filter. | | False |\n| per_zone_stats | Zone filter. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n##### per_server_stats\n\nMetrics of servers matching the selector will be collected.\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [matcher](https://github.com/netdata/go.d.plugin/tree/master/pkg/matcher#supported-format).\n- Syntax:\n\n```yaml\nper_server_stats:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n##### per_zone_stats\n\nMetrics of zones matching the selector will be collected.\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [matcher](https://github.com/netdata/go.d.plugin/tree/master/pkg/matcher#supported-format).\n- Syntax:\n\n```yaml\nper_zone_stats:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9153/metrics\n\n - name: remote\n url: http://203.0.113.10:9153/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `coredns` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m coredns\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CoreDNS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.dns_request_count_total | requests | requests/s |\n| coredns.dns_responses_count_total | responses | responses/s |\n| coredns.dns_request_count_total_per_status | processed, dropped | requests/s |\n| coredns.dns_no_matching_zone_dropped_total | dropped | requests/s |\n| coredns.dns_panic_count_total | panics | panics/s |\n| coredns.dns_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.dns_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.dns_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.dns_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n### Per server\n\nThese metrics refer to the DNS server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| server_name | Server name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.server_dns_request_count_total | requests | requests/s |\n| coredns.server_dns_responses_count_total | responses | responses/s |\n| coredns.server_request_count_total_per_status | processed, dropped | requests/s |\n| coredns.server_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.server_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.server_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.server_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n### Per zone\n\nThese metrics refer to the DNS zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| zone_name | Zone name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| coredns.zone_dns_request_count_total | requests | requests/s |\n| coredns.zone_dns_responses_count_total | responses | responses/s |\n| coredns.zone_requests_count_total_per_proto | udp, tcp | requests/s |\n| coredns.zone_requests_count_total_per_ip_family | v4, v6 | requests/s |\n| coredns.zone_requests_count_total_per_per_type | a, aaaa, mx, soa, cname, ptr, txt, ns, ds, dnskey, rrsig, nsec, nsec3, ixfr, any, other | requests/s |\n| coredns.zone_responses_count_total_per_rcode | noerror, formerr, servfail, nxdomain, notimp, refused, yxdomain, yxrrset, nxrrset, notauth, notzone, badsig, badkey, badtime, badmode, badname, badalg, badtrunc, badcookie, other | responses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-coredns-CoreDNS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/coredns/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "couchbase", "monitored_instance": {"name": "Couchbase", "link": "https://www.couchbase.com/", "icon_filename": "couchbase.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["couchbase", "databases"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Couchbase\n\n## Overview\n\nThis collector monitors Couchbase servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/couchbase.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/couchbase.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8091\n\n - name: remote\n url: http://203.0.113.0:8091\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `couchbase` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m couchbase\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Couchbase instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| couchbase.bucket_quota_percent_used | a dimension per bucket | percentage |\n| couchbase.bucket_ops_per_sec | a dimension per bucket | ops/s |\n| couchbase.bucket_disk_fetches | a dimension per bucket | fetches |\n| couchbase.bucket_item_count | a dimension per bucket | items |\n| couchbase.bucket_disk_used_stats | a dimension per bucket | bytes |\n| couchbase.bucket_data_used | a dimension per bucket | bytes |\n| couchbase.bucket_mem_used | a dimension per bucket | bytes |\n| couchbase.bucket_vb_active_num_non_resident | a dimension per bucket | items |\n\n", "integration_type": "collector", "id": "go.d.plugin-couchbase-Couchbase", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/couchbase/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "couchdb", "monitored_instance": {"name": "CouchDB", "link": "https://couchdb.apache.org/", "icon_filename": "couchdb.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["couchdb", "databases"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# CouchDB\n\n## Overview\n\nThis collector monitors CouchDB servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/couchdb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/couchdb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| node | CouchDB node name. Same as -name vm.args argument. | | False |\n| databases | List of database names for which db-specific stats should be displayed, space separated. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication, node name and multiple databases defined. Make sure to match the node name with the `NODENAME` value in your CouchDB's `etc/vm.args` file. Typically, this is of the form `couchdb@fully.qualified.domain.name` in a cluster, or `couchdb@127.0.0.1` for a single-node server.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n node: couchdb@127.0.0.1\n databases: my-db other-db\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:5984\n\n - name: remote\n url: http://203.0.113.0:5984\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `couchdb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m couchdb\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CouchDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| couchdb.activity | db_reads, db_writes, view_reads | requests/s |\n| couchdb.request_methods | copy, delete, get, head, options, post, put | requests/s |\n| couchdb.response_codes | 200, 201, 202, 204, 206, 301, 302, 304, 400, 401, 403, 404, 406, 409, 412, 413, 414, 415, 416, 417, 500, 501, 503 | responses/s |\n| couchdb.response_code_classes | 2xx, 3xx, 4xx, 5xx | responses/s |\n| couchdb.active_tasks | indexer, db_compaction, replication, view_compaction | tasks |\n| couchdb.replicator_jobs | running, pending, crashed, internal_replication_jobs | jobs |\n| couchdb.open_files | files | files |\n| couchdb.erlang_vm_memory | atom, binaries, code, ets, procs, other | B |\n| couchdb.proccounts | os_procs, erl_procs | processes |\n| couchdb.peakmsgqueue | peak_size | messages |\n| couchdb.reductions | reductions | reductions |\n| couchdb.db_sizes_file | a dimension per database | KiB |\n| couchdb.db_sizes_external | a dimension per database | KiB |\n| couchdb.db_sizes_active | a dimension per database | KiB |\n| couchdb.db_doc_count | a dimension per database | docs |\n| couchdb.db_doc_del_count | a dimension per database | docs |\n\n", "integration_type": "collector", "id": "go.d.plugin-couchdb-CouchDB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/couchdb/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "dns_query", "monitored_instance": {"name": "DNS query", "link": "", "icon_filename": "network-wired.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# DNS query\n\n## Overview\n\nThis module monitors DNS query round-trip time (RTT).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dns_query.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dns_query.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| domains | Domain or subdomains to query. The collector will choose a random domain from the list on every iteration. | | True |\n| servers | Servers to query. | | True |\n| port | DNS server port. | | False |\n| network | Network protocol name. Available options: udp, tcp, tcp-tls. | | False |\n| record_types | Query record type. Available options: A, AAAA, CNAME, MX, NS, PTR, TXT, SOA, SPF, TXT, SRV. | | False |\n| timeout | Query read timeout. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: job1\n record_types:\n - A\n - AAAA\n domains:\n - google.com\n - github.com\n - reddit.com\n servers:\n - 8.8.8.8\n - 8.8.4.4\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dns_query` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dns_query\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ dns_query_query_status ](https://github.com/netdata/netdata/blob/master/health/health.d/dns_query.conf) | dns_query.query_status | DNS request type ${label:record_type} to server ${label:server} is unsuccessful |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per server\n\nThese metrics refer to the DNS server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| server | DNS server address. |\n| network | Network protocol name (tcp, udp, tcp-tls). |\n| record_type | DNS record type (e.g. A, AAAA, CNAME). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dns_query.query_status | success, network_error, dns_error | status |\n| dns_query.query_time | query_time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-dns_query-DNS_query", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/dnsquery/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "dnsdist", "monitored_instance": {"name": "DNSdist", "link": "https://dnsdist.org/", "icon_filename": "network-wired.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["dnsdist", "dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# DNSdist\n\n## Overview\n\nThis collector monitors DNSDist servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable DNSdist built-in Webserver\n\nFor collecting metrics via HTTP, you need to [enable the built-in webserver](https://dnsdist.org/guides/webserver.html).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsdist.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsdist.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8083\n headers:\n X-API-Key: your-api-key # static pre-shared authentication key for access to the REST API (api-key).\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8083\n headers:\n X-API-Key: 'your-api-key' # static pre-shared authentication key for access to the REST API (api-key).\n\n - name: remote\n url: http://203.0.113.0:8083\n headers:\n X-API-Key: 'your-api-key'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsdist` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsdist\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per DNSdist instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsdist.queries | all, recursive, empty | queries/s |\n| dnsdist.queries_dropped | rule_drop, dynamic_blocked, no_policy, non_queries | queries/s |\n| dnsdist.packets_dropped | acl | packets/s |\n| dnsdist.answers | self_answered, nxdomain, refused, trunc_failures | answers/s |\n| dnsdist.backend_responses | responses | responses/s |\n| dnsdist.backend_commerrors | send_errors | errors/s |\n| dnsdist.backend_errors | timeouts, servfail, non_compliant | responses/s |\n| dnsdist.cache | hits, misses | answers/s |\n| dnsdist.servercpu | system_state, user_state | ms/s |\n| dnsdist.servermem | memory_usage | MiB |\n| dnsdist.query_latency | 1ms, 10ms, 50ms, 100ms, 1sec, slow | queries/s |\n| dnsdist.query_latency_avg | 100, 1k, 10k, 1000k | microseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-dnsdist-DNSdist", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/dnsdist/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "dnsmasq", "monitored_instance": {"name": "Dnsmasq", "link": "https://thekelleys.org.uk/dnsmasq/doc.html", "icon_filename": "dnsmasq.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["dnsmasq", "dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Dnsmasq\n\n## Overview\n\nThis collector monitors Dnsmasq servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsmasq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsmasq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address in `ip:port` format. | | True |\n| protocol | DNS query transport protocol. Supported protocols: udp, tcp, tcp-tls. | | False |\n| timeout | DNS query timeout (dial, write and read) in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n\n```\n{% /details %}\n##### Using TCP protocol\n\nLocal server with specific DNS query transport protocol.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n protocol: tcp\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:53\n\n - name: remote\n address: 203.0.113.0:53\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsmasq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsmasq\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dnsmasq instance\n\nThe metrics apply to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq.servers_queries | success, failed | queries/s |\n| dnsmasq.cache_performance | hist, misses | events/s |\n| dnsmasq.cache_operations | insertions, evictions | operations/s |\n| dnsmasq.cache_size | size | entries |\n\n", "integration_type": "collector", "id": "go.d.plugin-dnsmasq-Dnsmasq", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/dnsmasq/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "dnsmasq_dhcp", "monitored_instance": {"name": "Dnsmasq DHCP", "link": "https://www.thekelleys.org.uk/dnsmasq/doc.html", "icon_filename": "dnsmasq.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["dnsmasq", "dhcp"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Dnsmasq DHCP\n\n## Overview\n\nThis collector monitors Dnsmasq DHCP leases databases, depending on your configuration.\n\nBy default, it uses:\n\n- `/var/lib/misc/dnsmasq.leases` to read leases.\n- `/etc/dnsmasq.conf` to detect dhcp-ranges.\n- `/etc/dnsmasq.d` to find additional configurations.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAll configured dhcp-ranges are detected automatically\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dnsmasq_dhcp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dnsmasq_dhcp.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| leases_path | Path to dnsmasq DHCP leases file. | | False |\n| conf_path | Path to dnsmasq configuration file. | | False |\n| conf_dir | Path to dnsmasq configuration directory. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: dnsmasq_dhcp\n leases_path: /var/lib/misc/dnsmasq.leases\n conf_path: /etc/dnsmasq.conf\n conf_dir: /etc/dnsmasq.d\n\n```\n{% /details %}\n##### Pi-hole\n\nDnsmasq DHCP on Pi-hole.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: dnsmasq_dhcp\n leases_path: /etc/pihole/dhcp.leases\n conf_path: /etc/dnsmasq.conf\n conf_dir: /etc/dnsmasq.d\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dnsmasq_dhcp` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dnsmasq_dhcp\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ dnsmasq_dhcp_dhcp_range_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/dnsmasq_dhcp.conf) | dnsmasq_dhcp.dhcp_range_utilization | DHCP range utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dnsmasq DHCP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq_dhcp.dhcp_ranges | ipv4, ipv6 | ranges |\n| dnsmasq_dhcp.dhcp_hosts | ipv4, ipv6 | hosts |\n\n### Per dhcp range\n\nThese metrics refer to the DHCP range.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| dhcp_range | DHCP range in `START_IP:END_IP` format |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dnsmasq_dhcp.dhcp_range_utilization | used | percentage |\n| dnsmasq_dhcp.dhcp_range_allocated_leases | allocated | leases |\n\n", "integration_type": "collector", "id": "go.d.plugin-dnsmasq_dhcp-Dnsmasq_DHCP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/dnsmasq_dhcp/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "docker", "alternative_monitored_instances": [], "monitored_instance": {"name": "Docker", "link": "https://www.docker.com/", "categories": ["data-collection.containers-and-vms"], "icon_filename": "docker.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["container"], "most_popular": true}, "overview": "# Docker\n\n## Overview\n\nThis collector monitors Docker containers state, health status and more.\n\n\nIt connects to the Docker instance via a TCP or UNIX socket and executes the following commands:\n\n- [System info](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemInfo).\n- [List images](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageList).\n- [List containers](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nRequires netdata user to be in the docker group.\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances running on localhost by attempting to connect to a known Docker UNIX socket: `/var/run/docker.sock`.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nEnabling `collect_container_size` may result in high CPU usage depending on the version of Docker Engine.\n\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/docker.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/docker.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Docker daemon's listening address. When using a TCP socket, the format is: tcp://[ip]:[port] | | True |\n| timeout | Request timeout in seconds. | | False |\n| collect_container_size | Whether to collect container writable layer size. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n address: 'unix:///var/run/docker.sock'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'unix:///var/run/docker.sock'\n\n - name: remote\n address: 'tcp://203.0.113.10:2375'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `docker` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m docker\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ docker_container_unhealthy ](https://github.com/netdata/netdata/blob/master/health/health.d/docker.conf) | docker.container_health_status | ${label:container_name} docker container health status is unhealthy |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker.containers_state | running, paused, stopped | containers |\n| docker.containers_health_status | healthy, unhealthy, not_running_unhealthy, starting, no_healthcheck | containers |\n| docker.images | active, dangling | images |\n| docker.images_size | size | bytes |\n\n### Per container\n\nMetrics related to containers. Each container provides its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| container_name | The container's name |\n| image | The image name the container uses |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker.container_state | running, paused, exited, created, restarting, removing, dead | state |\n| docker.container_health_status | healthy, unhealthy, not_running_unhealthy, starting, no_healthcheck | status |\n| docker.container_writeable_layer_size | writeable_layer | size |\n\n", "integration_type": "collector", "id": "go.d.plugin-docker-Docker", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/docker/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "docker_engine", "alternative_monitored_instances": [], "monitored_instance": {"name": "Docker Engine", "link": "https://docs.docker.com/engine/", "categories": ["data-collection.containers-and-vms"], "icon_filename": "docker.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["docker", "container"], "most_popular": false}, "overview": "# Docker Engine\n\n## Overview\n\nThis collector monitors the activity and health of Docker Engine and Docker Swarm.\n\n\nThe [built-in](https://docs.docker.com/config/daemon/prometheus/) Prometheus exporter is used to get the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances running on localhost by attempting to connect to a known Docker TCP socket: `http://127.0.0.1:9323/metrics`.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable built-in Prometheus exporter\n\nTo enable built-in Prometheus exporter, follow the [official documentation](https://docs.docker.com/config/daemon/prometheus/#configure-docker).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/docker_engine.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/docker_engine.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| timeout | HTTP request timeout. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nConfiguration with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9323/metrics\n\n - name: remote\n url: http://192.0.2.1:9323/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `docker_engine` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m docker_engine\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker Engine instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| docker_engine.engine_daemon_container_actions | changes, commit, create, delete, start | actions/s |\n| docker_engine.engine_daemon_container_states_containers | running, paused, stopped | containers |\n| docker_engine.builder_builds_failed_total | build_canceled, build_target_not_reachable_error, command_not_supported_error, dockerfile_empty_error, dockerfile_syntax_error, error_processing_commands_error, missing_onbuild_arguments_error, unknown_instruction_error | fails/s |\n| docker_engine.engine_daemon_health_checks_failed_total | fails | events/s |\n| docker_engine.swarm_manager_leader | is_leader | bool |\n| docker_engine.swarm_manager_object_store | nodes, services, tasks, networks, secrets, configs | objects |\n| docker_engine.swarm_manager_nodes_per_state | ready, down, unknown, disconnected | nodes |\n| docker_engine.swarm_manager_tasks_per_state | running, failed, ready, rejected, starting, shutdown, new, orphaned, preparing, pending, complete, remove, accepted, assigned | tasks |\n\n", "integration_type": "collector", "id": "go.d.plugin-docker_engine-Docker_Engine", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/docker_engine/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "dockerhub", "monitored_instance": {"name": "Docker Hub repository", "link": "https://hub.docker.com/", "icon_filename": "docker.svg", "categories": ["data-collection.containers-and-vms"]}, "keywords": ["dockerhub"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Docker Hub repository\n\n## Overview\n\nThis collector keeps track of DockerHub repositories statistics such as the number of stars, pulls, current status, and more.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/dockerhub.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/dockerhub.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | DockerHub URL. | | True |\n| repositories | List of repositories to monitor. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: dockerhub\n repositories:\n - 'user1/name1'\n - 'user2/name2'\n - 'user3/name3'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dockerhub` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m dockerhub\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Docker Hub repository instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dockerhub.pulls_sum | sum | pulls |\n| dockerhub.pulls | a dimension per repository | pulls |\n| dockerhub.pulls_rate | a dimension per repository | pulls/s |\n| dockerhub.stars | a dimension per repository | stars |\n| dockerhub.status | a dimension per repository | status |\n| dockerhub.last_updated | a dimension per repository | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-dockerhub-Docker_Hub_repository", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/dockerhub/metadata.yaml"}, {"meta": {"module_name": "elasticsearch", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Elasticsearch", "link": "https://www.elastic.co/elasticsearch/", "icon_filename": "elasticsearch.svg", "categories": ["data-collection.search-engines"]}, "keywords": ["elastic", "elasticsearch", "opensearch", "search engine"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Elasticsearch\n\n## Overview\n\nThis collector monitors the performance and health of the Elasticsearch cluster.\n\n\nIt uses [Cluster APIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html) to collect metrics.\n\nUsed endpoints:\n\n| Endpoint | Description | API |\n|------------------------|----------------------|-------------------------------------------------------------------------------------------------------------|\n| `/` | Node info | |\n| `/_nodes/stats` | Nodes metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_nodes/_local/stats` | Local node metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_cluster/health` | Cluster health stats | [Cluster health API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html) |\n| `/_cluster/stats` | Cluster metrics | [Cluster stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html) |\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect to port 9200:\n\n- http://127.0.0.1:9200\n- https://127.0.0.1:9200\n\n\n#### Limits\n\nBy default, this collector monitors only the node it is connected to. To monitor all cluster nodes, set the `cluster_mode` configuration option to `yes`.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/elasticsearch.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/elasticsearch.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| cluster_mode | Controls whether to collect metrics for all nodes in the cluster or only for the local node. | | False |\n| collect_node_stats | Controls whether to collect nodes metrics. | | False |\n| collect_cluster_health | Controls whether to collect cluster health metrics. | | False |\n| collect_cluster_stats | Controls whether to collect cluster stats metrics. | | False |\n| collect_indices_stats | Controls whether to collect indices metrics. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic single node mode\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n```\n##### Cluster mode\n\nCluster mode example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n cluster_mode: yes\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nElasticsearch with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9200\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n - name: remote\n url: http://192.0.2.1:9200\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `elasticsearch` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m elasticsearch\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ elasticsearch_node_indices_search_time_query ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, queries run slowly. |\n| [ elasticsearch_node_indices_search_time_fetch ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, fetches run slowly. |\n| [ elasticsearch_cluster_health_status_red ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is red. |\n| [ elasticsearch_cluster_health_status_yellow ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is yellow. |\n| [ elasticsearch_node_index_health_red ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_index_health | node index $label:index health status is red. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the cluster node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n| node_name | Human-readable identifier for the node. Based on the [Node name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#node-name).\n |\n| host | Network host for the node, based on the [Network host setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#network.host).\n |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_indices_indexing | index | operations/s |\n| elasticsearch.node_indices_indexing_current | index | operations |\n| elasticsearch.node_indices_indexing_time | index | milliseconds |\n| elasticsearch.node_indices_search | queries, fetches | operations/s |\n| elasticsearch.node_indices_search_current | queries, fetches | operations |\n| elasticsearch.node_indices_search_time | queries, fetches | milliseconds |\n| elasticsearch.node_indices_refresh | refresh | operations/s |\n| elasticsearch.node_indices_refresh_time | refresh | milliseconds |\n| elasticsearch.node_indices_flush | flush | operations/s |\n| elasticsearch.node_indices_flush_time | flush | milliseconds |\n| elasticsearch.node_indices_fielddata_memory_usage | used | bytes |\n| elasticsearch.node_indices_fielddata_evictions | evictions | operations/s |\n| elasticsearch.node_indices_segments_count | segments | segments |\n| elasticsearch.node_indices_segments_memory_usage_total | used | bytes |\n| elasticsearch.node_indices_segments_memory_usage | terms, stored_fields, term_vectors, norms, points, doc_values, index_writer, version_map, fixed_bit_set | bytes |\n| elasticsearch.node_indices_translog_operations | total, uncommitted | operations |\n| elasticsearch.node_indices_translog_size | total, uncommitted | bytes |\n| elasticsearch.node_file_descriptors | open | fd |\n| elasticsearch.node_jvm_heap | inuse | percentage |\n| elasticsearch.node_jvm_heap_bytes | committed, used | bytes |\n| elasticsearch.node_jvm_buffer_pools_count | direct, mapped | pools |\n| elasticsearch.node_jvm_buffer_pool_direct_memory | total, used | bytes |\n| elasticsearch.node_jvm_buffer_pool_mapped_memory | total, used | bytes |\n| elasticsearch.node_jvm_gc_count | young, old | gc/s |\n| elasticsearch.node_jvm_gc_time | young, old | milliseconds |\n| elasticsearch.node_thread_pool_queued | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_thread_pool_rejected | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_cluster_communication_packets | received, sent | pps |\n| elasticsearch.node_cluster_communication_traffic | received, sent | bytes/s |\n| elasticsearch.node_http_connections | open | connections |\n| elasticsearch.node_breakers_trips | requests, fielddata, in_flight_requests, model_inference, accounting, parent | trips/s |\n\n### Per cluster\n\nThese metrics refer to the cluster.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.cluster_health_status | green, yellow, red | status |\n| elasticsearch.cluster_number_of_nodes | nodes, data_nodes | nodes |\n| elasticsearch.cluster_shards_count | active_primary, active, relocating, initializing, unassigned, delayed_unaasigned | shards |\n| elasticsearch.cluster_pending_tasks | pending | tasks |\n| elasticsearch.cluster_number_of_in_flight_fetch | in_flight_fetch | fetches |\n| elasticsearch.cluster_indices_count | indices | indices |\n| elasticsearch.cluster_indices_shards_count | total, primaries, replication | shards |\n| elasticsearch.cluster_indices_docs_count | docs | docs |\n| elasticsearch.cluster_indices_store_size | size | bytes |\n| elasticsearch.cluster_indices_query_cache | hit, miss | events/s |\n| elasticsearch.cluster_nodes_by_role_count | coordinating_only, data, data_cold, data_content, data_frozen, data_hot, data_warm, ingest, master, ml, remote_cluster_client, voting_only | nodes |\n\n### Per index\n\nThese metrics refer to the index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n| index | Name of the index. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_index_health | green, yellow, red | status |\n| elasticsearch.node_index_shards_count | shards | shards |\n| elasticsearch.node_index_docs_count | docs | docs |\n| elasticsearch.node_index_store_size | store_size | bytes |\n\n", "integration_type": "collector", "id": "go.d.plugin-elasticsearch-Elasticsearch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/elasticsearch/metadata.yaml"}, {"meta": {"module_name": "elasticsearch", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenSearch", "link": "https://opensearch.org/", "icon_filename": "opensearch.svg", "categories": ["data-collection.search-engines"]}, "keywords": ["elastic", "elasticsearch", "opensearch", "search engine"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# OpenSearch\n\n## Overview\n\nThis collector monitors the performance and health of the Elasticsearch cluster.\n\n\nIt uses [Cluster APIs](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster.html) to collect metrics.\n\nUsed endpoints:\n\n| Endpoint | Description | API |\n|------------------------|----------------------|-------------------------------------------------------------------------------------------------------------|\n| `/` | Node info | |\n| `/_nodes/stats` | Nodes metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_nodes/_local/stats` | Local node metrics | [Nodes stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html) |\n| `/_cluster/health` | Cluster health stats | [Cluster health API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html) |\n| `/_cluster/stats` | Cluster metrics | [Cluster stats API](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html) |\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect to port 9200:\n\n- http://127.0.0.1:9200\n- https://127.0.0.1:9200\n\n\n#### Limits\n\nBy default, this collector monitors only the node it is connected to. To monitor all cluster nodes, set the `cluster_mode` configuration option to `yes`.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/elasticsearch.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/elasticsearch.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| cluster_mode | Controls whether to collect metrics for all nodes in the cluster or only for the local node. | | False |\n| collect_node_stats | Controls whether to collect nodes metrics. | | False |\n| collect_cluster_health | Controls whether to collect cluster health metrics. | | False |\n| collect_cluster_stats | Controls whether to collect cluster stats metrics. | | False |\n| collect_indices_stats | Controls whether to collect indices metrics. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic single node mode\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n```\n##### Cluster mode\n\nCluster mode example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n cluster_mode: yes\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nElasticsearch with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9200\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9200\n\n - name: remote\n url: http://192.0.2.1:9200\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `elasticsearch` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m elasticsearch\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ elasticsearch_node_indices_search_time_query ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, queries run slowly. |\n| [ elasticsearch_node_indices_search_time_fetch ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_indices_search_time | search performance is degraded, fetches run slowly. |\n| [ elasticsearch_cluster_health_status_red ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is red. |\n| [ elasticsearch_cluster_health_status_yellow ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.cluster_health_status | cluster health status is yellow. |\n| [ elasticsearch_node_index_health_red ](https://github.com/netdata/netdata/blob/master/health/health.d/elasticsearch.conf) | elasticsearch.node_index_health | node index $label:index health status is red. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the cluster node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n| node_name | Human-readable identifier for the node. Based on the [Node name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#node-name).\n |\n| host | Network host for the node, based on the [Network host setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#network.host).\n |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_indices_indexing | index | operations/s |\n| elasticsearch.node_indices_indexing_current | index | operations |\n| elasticsearch.node_indices_indexing_time | index | milliseconds |\n| elasticsearch.node_indices_search | queries, fetches | operations/s |\n| elasticsearch.node_indices_search_current | queries, fetches | operations |\n| elasticsearch.node_indices_search_time | queries, fetches | milliseconds |\n| elasticsearch.node_indices_refresh | refresh | operations/s |\n| elasticsearch.node_indices_refresh_time | refresh | milliseconds |\n| elasticsearch.node_indices_flush | flush | operations/s |\n| elasticsearch.node_indices_flush_time | flush | milliseconds |\n| elasticsearch.node_indices_fielddata_memory_usage | used | bytes |\n| elasticsearch.node_indices_fielddata_evictions | evictions | operations/s |\n| elasticsearch.node_indices_segments_count | segments | segments |\n| elasticsearch.node_indices_segments_memory_usage_total | used | bytes |\n| elasticsearch.node_indices_segments_memory_usage | terms, stored_fields, term_vectors, norms, points, doc_values, index_writer, version_map, fixed_bit_set | bytes |\n| elasticsearch.node_indices_translog_operations | total, uncommitted | operations |\n| elasticsearch.node_indices_translog_size | total, uncommitted | bytes |\n| elasticsearch.node_file_descriptors | open | fd |\n| elasticsearch.node_jvm_heap | inuse | percentage |\n| elasticsearch.node_jvm_heap_bytes | committed, used | bytes |\n| elasticsearch.node_jvm_buffer_pools_count | direct, mapped | pools |\n| elasticsearch.node_jvm_buffer_pool_direct_memory | total, used | bytes |\n| elasticsearch.node_jvm_buffer_pool_mapped_memory | total, used | bytes |\n| elasticsearch.node_jvm_gc_count | young, old | gc/s |\n| elasticsearch.node_jvm_gc_time | young, old | milliseconds |\n| elasticsearch.node_thread_pool_queued | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_thread_pool_rejected | generic, search, search_throttled, get, analyze, write, snapshot, warmer, refresh, listener, fetch_shard_started, fetch_shard_store, flush, force_merge, management | threads |\n| elasticsearch.node_cluster_communication_packets | received, sent | pps |\n| elasticsearch.node_cluster_communication_traffic | received, sent | bytes/s |\n| elasticsearch.node_http_connections | open | connections |\n| elasticsearch.node_breakers_trips | requests, fielddata, in_flight_requests, model_inference, accounting, parent | trips/s |\n\n### Per cluster\n\nThese metrics refer to the cluster.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.cluster_health_status | green, yellow, red | status |\n| elasticsearch.cluster_number_of_nodes | nodes, data_nodes | nodes |\n| elasticsearch.cluster_shards_count | active_primary, active, relocating, initializing, unassigned, delayed_unaasigned | shards |\n| elasticsearch.cluster_pending_tasks | pending | tasks |\n| elasticsearch.cluster_number_of_in_flight_fetch | in_flight_fetch | fetches |\n| elasticsearch.cluster_indices_count | indices | indices |\n| elasticsearch.cluster_indices_shards_count | total, primaries, replication | shards |\n| elasticsearch.cluster_indices_docs_count | docs | docs |\n| elasticsearch.cluster_indices_store_size | size | bytes |\n| elasticsearch.cluster_indices_query_cache | hit, miss | events/s |\n| elasticsearch.cluster_nodes_by_role_count | coordinating_only, data, data_cold, data_content, data_frozen, data_hot, data_warm, ingest, master, ml, remote_cluster_client, voting_only | nodes |\n\n### Per index\n\nThese metrics refer to the index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cluster_name | Name of the cluster. Based on the [Cluster name setting](https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#cluster-name).\n |\n| index | Name of the index. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| elasticsearch.node_index_health | green, yellow, red | status |\n| elasticsearch.node_index_shards_count | shards | shards |\n| elasticsearch.node_index_docs_count | docs | docs |\n| elasticsearch.node_index_store_size | store_size | bytes |\n\n", "integration_type": "collector", "id": "go.d.plugin-elasticsearch-OpenSearch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/elasticsearch/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "envoy", "monitored_instance": {"name": "Envoy", "link": "https://www.envoyproxy.io/", "icon_filename": "envoy.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["envoy", "proxy"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Envoy\n\n## Overview\n\nThis collector monitors Envoy proxies. It collects server, cluster, and listener metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Envoy instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/envoy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/envoy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9901/stats/prometheus\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9901/stats/prometheus\n\n - name: remote\n url: http://192.0.2.1:9901/stats/prometheus\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `envoy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m envoy\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Envoy instance\n\nEnvoy exposes metrics in Prometheus format. All metric labels are added to charts.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| envoy.server_state | live, draining, pre_initializing, initializing | state |\n| envoy.server_connections_count | connections | connections |\n| envoy.server_parent_connections_count | connections | connections |\n| envoy.server_memory_allocated_size | allocated | bytes |\n| envoy.server_memory_heap_size | heap | bytes |\n| envoy.server_memory_physical_size | physical | bytes |\n| envoy.server_uptime | uptime | seconds |\n| envoy.cluster_manager_cluster_count | active, not_active | clusters |\n| envoy.cluster_manager_cluster_changes_rate | added, modified, removed | clusters/s |\n| envoy.cluster_manager_cluster_updates_rate | cluster | updates/s |\n| envoy.cluster_manager_cluster_updated_via_merge_rate | via_merge | updates/s |\n| envoy.cluster_manager_update_merge_cancelled_rate | merge_cancelled | updates/s |\n| envoy.cluster_manager_update_out_of_merge_window_rate | out_of_merge_window | updates/s |\n| envoy.cluster_membership_endpoints_count | healthy, degraded, excluded | endpoints |\n| envoy.cluster_membership_changes_rate | membership | changes/s |\n| envoy.cluster_membership_updates_rate | success, failure, empty, no_rebuild | updates/s |\n| envoy.cluster_upstream_cx_active_count | active | connections |\n| envoy.cluster_upstream_cx_rate | created | connections/s |\n| envoy.cluster_upstream_cx_http_rate | http1, http2, http3 | connections/s |\n| envoy.cluster_upstream_cx_destroy_rate | local, remote | connections/s |\n| envoy.cluster_upstream_cx_connect_fail_rate | failed | connections/s |\n| envoy.cluster_upstream_cx_connect_timeout_rate | timeout | connections/s |\n| envoy.cluster_upstream_cx_bytes_rate | received, sent | bytes/s |\n| envoy.cluster_upstream_cx_bytes_buffered_size | received, send | bytes |\n| envoy.cluster_upstream_rq_active_count | active | requests |\n| envoy.cluster_upstream_rq_rate | requests | requests/s |\n| envoy.cluster_upstream_rq_failed_rate | cancelled, maintenance_mode, timeout, max_duration_reached, per_try_timeout, reset_local, reset_remote | requests/s |\n| envoy.cluster_upstream_rq_pending_active_count | active_pending | requests |\n| envoy.cluster_upstream_rq_pending_rate | pending | requests/s |\n| envoy.cluster_upstream_rq_pending_failed_rate | overflow, failure_eject | requests/s |\n| envoy.cluster_upstream_rq_retry_rate | request | retries/s |\n| envoy.cluster_upstream_rq_retry_success_rate | success | retries/s |\n| envoy.cluster_upstream_rq_retry_backoff_rate | exponential, ratelimited | retries/s |\n| envoy.listener_manager_listeners_count | active, warming, draining | listeners |\n| envoy.listener_manager_listener_changes_rate | added, modified, removed, stopped | listeners/s |\n| envoy.listener_manager_listener_object_events_rate | create_success, create_failure, in_place_updated | objects/s |\n| envoy.listener_admin_downstream_cx_active_count | active | connections |\n| envoy.listener_admin_downstream_cx_rate | created | connections/s |\n| envoy.listener_admin_downstream_cx_destroy_rate | destroyed | connections/s |\n| envoy.listener_admin_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |\n| envoy.listener_admin_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |\n| envoy.listener_admin_downstream_listener_filter_remote_close_rate | closed | connections/s |\n| envoy.listener_admin_downstream_listener_filter_error_rate | read | errors/s |\n| envoy.listener_admin_downstream_pre_cx_active_count | active | sockets |\n| envoy.listener_admin_downstream_pre_cx_timeout_rate | timeout | sockets/s |\n| envoy.listener_downstream_cx_active_count | active | connections |\n| envoy.listener_downstream_cx_rate | created | connections/s |\n| envoy.listener_downstream_cx_destroy_rate | destroyed | connections/s |\n| envoy.listener_downstream_cx_transport_socket_connect_timeout_rate | timeout | connections/s |\n| envoy.listener_downstream_cx_rejected_rate | overflow, overload, global_overflow | connections/s |\n| envoy.listener_downstream_listener_filter_remote_close_rate | closed | connections/s |\n| envoy.listener_downstream_listener_filter_error_rate | read | errors/s |\n| envoy.listener_downstream_pre_cx_active_count | active | sockets |\n| envoy.listener_downstream_pre_cx_timeout_rate | timeout | sockets/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-envoy-Envoy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/envoy/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "filecheck", "monitored_instance": {"name": "Files and directories", "link": "", "icon_filename": "filesystem.svg", "categories": ["data-collection.linux-systems"]}, "keywords": ["files", "directories"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Files and directories\n\n## Overview\n\nThis collector monitors files and directories.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n`netdata` user needs the following permissions on all the directories in pathname that lead to the file/dir:\n\n- files monitoring: `execute`.\n- directories monitoring: `read` and `execute`.\n\nIf you need to modify the permissions we\nsuggest [to use file access control lists](https://linux.die.net/man/1/setfacl):\n\n```cmd\nsetfacl -m u:netconfig:rx file ...\n``` \n\n> **Warning**: For security reasons, this should not be applied recursively, but only to the exact set of directories\n> that lead to the file/dir you want to monitor.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/filecheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/filecheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| files | List of files to monitor. | | True |\n| dirs | List of directories to monitor. | | True |\n| discovery_every | Files and directories discovery interval. | | False |\n\n##### files\n\nFiles matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\nfiles:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n##### dirs\n\nDirectories matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\ndirs:\n includes:\n - pattern1\n - pattern2\n excludes:\n - pattern3\n - pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Files\n\nFiles monitoring example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: files_example\n files:\n include:\n - '/path/to/file1'\n - '/path/to/file2'\n - '/path/to/*.log'\n\n```\n{% /details %}\n##### Directories\n\nDirectories monitoring example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: files_example\n dirs:\n collect_dir_size: no\n include:\n - '/path/to/dir1'\n - '/path/to/dir2'\n - '/path/to/dir3*'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `filecheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m filecheck\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Files and directories instance\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| filecheck.file_existence | a dimension per file | boolean |\n| filecheck.file_mtime_ago | a dimension per file | seconds |\n| filecheck.file_size | a dimension per file | bytes |\n| filecheck.dir_existence | a dimension per directory | boolean |\n| filecheck.dir_mtime_ago | a dimension per directory | seconds |\n| filecheck.dir_num_of_files | a dimension per directory | files |\n| filecheck.dir_size | a dimension per directory | bytes |\n\n", "integration_type": "collector", "id": "go.d.plugin-filecheck-Files_and_directories", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/filecheck/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "fluentd", "monitored_instance": {"name": "Fluentd", "link": "https://www.fluentd.org/", "icon_filename": "fluentd.svg", "categories": ["data-collection.logs-servers"]}, "keywords": ["fluentd", "logging"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Fluentd\n\n## Overview\n\nThis collector monitors Fluentd servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable monitor agent\n\nTo enable monitor agent, follow the [official documentation](https://docs.fluentd.org/v1.0/articles/monitoring-rest-api).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/fluentd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/fluentd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nFluentd with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:24220\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:24220\n\n - name: remote\n url: http://192.0.2.1:24220\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `fluentd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m fluentd\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Fluentd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| fluentd.retry_count | a dimension per plugin | count |\n| fluentd.buffer_queue_length | a dimension per plugin | queue_length |\n| fluentd.buffer_total_queued_size | a dimension per plugin | queued_size |\n\n", "integration_type": "collector", "id": "go.d.plugin-fluentd-Fluentd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/fluentd/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "freeradius", "monitored_instance": {"name": "FreeRADIUS", "link": "https://freeradius.org/", "categories": ["data-collection.authentication-and-authorization"], "icon_filename": "freeradius.svg"}, "keywords": ["freeradius", "radius"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# FreeRADIUS\n\n## Overview\n\nThis collector monitors FreeRADIUS servers.\n\nIt collect metrics by sending [status-server](https://wiki.freeradius.org/config/Status) messages to the server.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects FreeRadius instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable status server\n\nTo enable status server, follow the [official documentation](https://wiki.freeradius.org/config/Status).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/freeradius.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/freeradius.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address. | | True |\n| port | Server port. | | False |\n| secret | FreeRADIUS secret. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1\n port: 18121\n secert: adminsecret\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1\n port: 18121\n secert: adminsecret\n\n - name: remote\n address: 192.0.2.1\n port: 18121\n secert: adminsecret\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `freeradius` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m freeradius\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per FreeRADIUS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| freeradius.authentication | requests, responses | packets/s |\n| freeradius.authentication_access_responses | accepts, rejects, challenges | packets/s |\n| freeradius.bad_authentication | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.proxy_authentication | requests, responses | packets/s |\n| freeradius.proxy_authentication_access_responses | accepts, rejects, challenges | packets/s |\n| freeradius.proxy_bad_authentication | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.accounting | requests, responses | packets/s |\n| freeradius.bad_accounting | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n| freeradius.proxy_accounting | requests, responses | packets/s |\n| freeradius.proxy_bad_accounting | dropped, duplicate, invalid, malformed, unknown-types | packets/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-freeradius-FreeRADIUS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/freeradius/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "geth", "monitored_instance": {"name": "Go-ethereum", "link": "https://github.com/ethereum/go-ethereum", "icon_filename": "geth.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": ["geth", "ethereum", "blockchain"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Go-ethereum\n\n## Overview\n\nThis collector monitors Go-ethereum instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Go-ethereum instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/geth.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/geth.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n username: username\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:6060/debug/metrics/prometheus\n\n - name: remote\n url: http://192.0.2.1:6060/debug/metrics/prometheus\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `geth` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m geth\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Go-ethereum instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| geth.eth_db_chaindata_ancient_io_rate | reads, writes | bytes/s |\n| geth.eth_db_chaindata_ancient_io | reads, writes | bytes |\n| geth.eth_db_chaindata_disk_io | reads, writes | bytes |\n| geth.goroutines | goroutines | goroutines |\n| geth.eth_db_chaindata_disk_io_rate | reads, writes | bytes/s |\n| geth.chaindata_db_size | level_db, ancient_db | bytes |\n| geth.chainhead | block, receipt, header | block |\n| geth.tx_pool_pending | invalid, pending, local, discard, no_funds, ratelimit, replace | transactions |\n| geth.tx_pool_current | invalid, pending, local, pool | transactions |\n| geth.tx_pool_queued | discard, eviction, no_funds, ratelimit | transactions |\n| geth.p2p_bandwidth | ingress, egress | bytes/s |\n| geth.reorgs | executed | reorgs |\n| geth.reorgs_blocks | added, dropped | blocks |\n| geth.p2p_peers | peers | peers |\n| geth.p2p_peers_calls | dials, serves | calls/s |\n| geth.rpc_calls | failed, successful | calls/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-geth-Go-ethereum", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/geth/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "haproxy", "monitored_instance": {"name": "HAProxy", "link": "https://www.haproxy.org/", "icon_filename": "haproxy.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["haproxy", "web", "webserver", "http", "proxy"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# HAProxy\n\n## Overview\n\nThis collector monitors HAProxy servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable PROMEX addon.\n\nTo enable PROMEX addon, follow the [official documentation](https://github.com/haproxy/haproxy/tree/master/addons/promex).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/haproxy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/haproxy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX Plus with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8404/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8404/metrics\n\n - name: remote\n url: http://192.0.2.1:8404/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `haproxy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m haproxy\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HAProxy instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| haproxy.backend_current_sessions | a dimension per proxy | sessions |\n| haproxy.backend_sessions | a dimension per proxy | sessions/s |\n| haproxy.backend_response_time_average | a dimension per proxy | milliseconds |\n| haproxy.backend_queue_time_average | a dimension per proxy | milliseconds |\n| haproxy.backend_current_queue | a dimension per proxy | requests |\n\n### Per proxy\n\nThese metrics refer to the Proxy.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| haproxy.backend_http_responses | 1xx, 2xx, 3xx, 4xx, 5xx, other | responses/s |\n| haproxy.backend_network_io | in, out | bytes/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-haproxy-HAProxy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/haproxy/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "hfs", "monitored_instance": {"name": "Hadoop Distributed File System (HDFS)", "link": "https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html", "icon_filename": "hadoop.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": ["hdfs", "hadoop"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Hadoop Distributed File System (HDFS)\n\n## Overview\n\nThis collector monitors HDFS nodes.\n\nNetdata accesses HDFS metrics over `Java Management Extensions` (JMX) through the web interface of an HDFS daemon.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/hdfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/hdfs.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9870/jmx\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9870/jmx\n\n - name: remote\n url: http://192.0.2.1:9870/jmx\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hfs` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m hfs\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ hdfs_capacity_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/hdfs.conf) | hdfs.capacity | summary datanodes space capacity utilization |\n| [ hdfs_missing_blocks ](https://github.com/netdata/netdata/blob/master/health/health.d/hdfs.conf) | hdfs.blocks | number of missing blocks |\n| [ hdfs_stale_nodes ](https://github.com/netdata/netdata/blob/master/health/health.d/hdfs.conf) | hdfs.data_nodes | number of datanodes marked stale due to delayed heartbeat |\n| [ hdfs_dead_nodes ](https://github.com/netdata/netdata/blob/master/health/health.d/hdfs.conf) | hdfs.data_nodes | number of datanodes which are currently dead |\n| [ hdfs_num_failed_volumes ](https://github.com/netdata/netdata/blob/master/health/health.d/hdfs.conf) | hdfs.num_failed_volumes | number of failed volumes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Hadoop Distributed File System (HDFS) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | DataNode | NameNode |\n|:------|:----------|:----|:---:|:---:|\n| hdfs.heap_memory | committed, used | MiB | \u2022 | \u2022 |\n| hdfs.gc_count_total | gc | events/s | \u2022 | \u2022 |\n| hdfs.gc_time_total | ms | ms | \u2022 | \u2022 |\n| hdfs.gc_threshold | info, warn | events/s | \u2022 | \u2022 |\n| hdfs.threads | new, runnable, blocked, waiting, timed_waiting, terminated | num | \u2022 | \u2022 |\n| hdfs.logs_total | info, error, warn, fatal | logs/s | \u2022 | \u2022 |\n| hdfs.rpc_bandwidth | received, sent | kilobits/s | \u2022 | \u2022 |\n| hdfs.rpc_calls | calls | calls/s | \u2022 | \u2022 |\n| hdfs.open_connections | open | connections | \u2022 | \u2022 |\n| hdfs.call_queue_length | length | num | \u2022 | \u2022 |\n| hdfs.avg_queue_time | time | ms | \u2022 | \u2022 |\n| hdfs.avg_processing_time | time | ms | \u2022 | \u2022 |\n| hdfs.capacity | remaining, used | KiB | | \u2022 |\n| hdfs.used_capacity | dfs, non_dfs | KiB | | \u2022 |\n| hdfs.load | load | load | | \u2022 |\n| hdfs.volume_failures_total | failures | events/s | | \u2022 |\n| hdfs.files_total | files | num | | \u2022 |\n| hdfs.blocks_total | blocks | num | | \u2022 |\n| hdfs.blocks | corrupt, missing, under_replicated | num | | \u2022 |\n| hdfs.data_nodes | live, dead, stale | num | | \u2022 |\n| hdfs.datanode_capacity | remaining, used | KiB | \u2022 | |\n| hdfs.datanode_used_capacity | dfs, non_dfs | KiB | \u2022 | |\n| hdfs.datanode_failed_volumes | failed volumes | num | \u2022 | |\n| hdfs.datanode_bandwidth | reads, writes | KiB/s | \u2022 | |\n\n", "integration_type": "collector", "id": "go.d.plugin-hfs-Hadoop_Distributed_File_System_(HDFS)", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/hdfs/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "httpcheck", "monitored_instance": {"name": "HTTP Endpoints", "link": "", "icon_filename": "globe.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": ["webserver"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# HTTP Endpoints\n\n## Overview\n\nThis collector monitors HTTP servers availability and response time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/httpcheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/httpcheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| status_accepted | HTTP accepted response statuses. Anything else will result in 'bad status' in the status chart. | | False |\n| response_match | If the status code is accepted, the content of the response will be matched against this regular expression. | | False |\n| cookie_file | Path to cookie file. See [cookie file format](https://everything.curl.dev/http/cookies/fileformat). | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n\n```\n{% /details %}\n##### With status_accepted\n\nA basic example configuration with non-default status_accepted.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n status_accepted:\n - 200\n - 204\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080\n\n - name: remote\n url: http://192.0.2.1:8080\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `httpcheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m httpcheck\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per target\n\nThe metrics refer to the monitored target.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| url | url value that is set in the configuration file. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| httpcheck.response_time | time | ms |\n| httpcheck.response_length | length | characters |\n| httpcheck.status | success, no_connection, timeout, bad_content, bad_status | boolean |\n| httpcheck.in_state | time | boolean |\n\n", "integration_type": "collector", "id": "go.d.plugin-httpcheck-HTTP_Endpoints", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/httpcheck/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "isc_dhcpd", "monitored_instance": {"name": "ISC DHCP", "link": "https://www.isc.org/dhcp/", "categories": ["data-collection.dns-and-dhcp-servers"], "icon_filename": "isc.png"}, "keywords": ["dhcpd", "dhcp"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# ISC DHCP\n\n## Overview\n\nThis collector monitors ISC DHCP lease usage by reading the DHCP client lease database (dhcpd.leases).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/isc_dhcps.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/isc_dhcps.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| leases_path | Path to DHCP client lease database. | | False |\n| pools | List of IP pools to monitor. | | True |\n\n##### pools\n\nList of IP pools to monitor.\n\n- IP range syntax: see [supported formats](https://github.com/netdata/go.d.plugin/tree/master/pkg/iprange#supported-formats).\n- Syntax:\n\n```yaml\npools:\n - name: \"POOL_NAME1\"\n networks: \"SPACE SEPARATED LIST OF IP RANGES\"\n - name: \"POOL_NAME2\"\n networks: \"SPACE SEPARATED LIST OF IP RANGES\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n pools:\n - name: lan\n networks: \"192.168.0.0/24 192.168.1.0/24 192.168.2.0/24\"\n - name: wifi\n networks: \"10.0.0.0/24\"\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `isc_dhcpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m isc_dhcpd\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ISC DHCP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| isc_dhcpd.active_leases_total | active | leases |\n| isc_dhcpd.pool_active_leases | a dimension per DHCP pool | leases |\n| isc_dhcpd.pool_utilization | a dimension per DHCP pool | percentage |\n\n", "integration_type": "collector", "id": "go.d.plugin-isc_dhcpd-ISC_DHCP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/isc_dhcpd/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "k8s_kubelet", "monitored_instance": {"name": "Kubelet", "link": "https://kubernetes.io/docs/concepts/overview/components/#kubelet", "icon_filename": "kubernetes.svg", "categories": ["data-collection.kubernetes"]}, "keywords": ["kubelet", "kubernetes", "k8s"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Kubelet\n\n## Overview\n\nThis collector monitors Kubelet instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_kubelet.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_kubelet.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10255/metrics\n\n```\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10250/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_kubelet` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_kubelet\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ kubelet_node_config_error ](https://github.com/netdata/netdata/blob/master/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_node_config_error | the node is experiencing a configuration-related error (0: false, 1: true) |\n| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |\n| [ kubelet_token_requests ](https://github.com/netdata/netdata/blob/master/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_token_requests | number of failed Token() requests to the alternate token source |\n| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |\n| [ kubelet_operations_error ](https://github.com/netdata/netdata/blob/master/health/health.d/kubelet.conf) | k8s_kubelet.kubelet_operations_errors | number of Docker or runtime operation errors |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kubelet instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubelet.apiserver_audit_requests_rejected | rejected | requests/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_failures | failures | events/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies | 5_\u00b5s, 10_\u00b5s, 20_\u00b5s, 40_\u00b5s, 80_\u00b5s, 160_\u00b5s, 320_\u00b5s, 640_\u00b5s, 1280_\u00b5s, 2560_\u00b5s, 5120_\u00b5s, 10240_\u00b5s, 20480_\u00b5s, 40960_\u00b5s, +Inf | observes/s |\n| k8s_kubelet.apiserver_storage_data_key_generation_latencies_percent | 5_\u00b5s, 10_\u00b5s, 20_\u00b5s, 40_\u00b5s, 80_\u00b5s, 160_\u00b5s, 320_\u00b5s, 640_\u00b5s, 1280_\u00b5s, 2560_\u00b5s, 5120_\u00b5s, 10240_\u00b5s, 20480_\u00b5s, 40960_\u00b5s, +Inf | percentage |\n| k8s_kubelet.apiserver_storage_envelope_transformation_cache_misses | cache misses | events/s |\n| k8s_kubelet.kubelet_containers_running | total | running_containers |\n| k8s_kubelet.kubelet_pods_running | total | running_pods |\n| k8s_kubelet.kubelet_pods_log_filesystem_used_bytes | a dimension per namespace and pod | B |\n| k8s_kubelet.kubelet_runtime_operations | a dimension per operation type | operations/s |\n| k8s_kubelet.kubelet_runtime_operations_errors | a dimension per operation type | errors/s |\n| k8s_kubelet.kubelet_docker_operations | a dimension per operation type | operations/s |\n| k8s_kubelet.kubelet_docker_operations_errors | a dimension per operation type | errors/s |\n| k8s_kubelet.kubelet_node_config_error | experiencing_error | bool |\n| k8s_kubelet.kubelet_pleg_relist_interval_microseconds | 0.5, 0.9, 0.99 | microseconds |\n| k8s_kubelet.kubelet_pleg_relist_latency_microseconds | 0.5, 0.9, 0.99 | microseconds |\n| k8s_kubelet.kubelet_token_requests | total, failed | token_requests/s |\n| k8s_kubelet.rest_client_requests_by_code | a dimension per HTTP status code | requests/s |\n| k8s_kubelet.rest_client_requests_by_method | a dimension per HTTP method | requests/s |\n\n### Per volume manager\n\nThese metrics refer to the Volume Manager.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubelet.volume_manager_total_volumes | actual, desired | state |\n\n", "integration_type": "collector", "id": "go.d.plugin-k8s_kubelet-Kubelet", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/k8s_kubelet/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "k8s_kubeproxy", "monitored_instance": {"name": "Kubeproxy", "link": "https://kubernetes.io/docs/concepts/overview/components/#kube-proxy", "icon_filename": "kubernetes.svg", "categories": ["data-collection.kubernetes"]}, "keywords": ["kubeproxy", "kubernetes", "k8s"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Kubeproxy\n\n## Overview\n\nThis collector monitors Kubeproxy instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_kubeproxy.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_kubeproxy.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:10249/metrics\n\n```\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:10249/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_kubeproxy` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_kubeproxy\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kubeproxy instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules | sync_proxy_rules | events/s |\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency_microsecond | 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512, 1.024, 2.048, 4.096, 8.192, 16.384, +Inf | observes/s |\n| k8s_kubeproxy.kubeproxy_sync_proxy_rules_latency | 0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512, 1.024, 2.048, 4.096, 8.192, 16.384, +Inf | percentage |\n| k8s_kubeproxy.rest_client_requests_by_code | a dimension per HTTP status code | requests/s |\n| k8s_kubeproxy.rest_client_requests_by_method | a dimension per HTTP method | requests/s |\n| k8s_kubeproxy.http_request_duration | 0.5, 0.9, 0.99 | microseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-k8s_kubeproxy-Kubeproxy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/k8s_kubeproxy/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "k8s_state", "monitored_instance": {"name": "Kubernetes", "link": "https://kubernetes.io/", "icon_filename": "kubernetes.svg", "categories": ["data-collection.kubernetes"]}, "keywords": ["kubernetes", "k8s"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Kubernetes\n\n## Overview\n\nThis collector monitors Kubernetes Nodes, Pods and Containers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/k8s_state.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/k8s_state.conf\n```\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `k8s_state` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m k8s_state\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per node\n\nThese metrics refer to the Node.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.node_allocatable_cpu_requests_utilization | requests | % |\n| k8s_state.node_allocatable_cpu_requests_used | requests | millicpu |\n| k8s_state.node_allocatable_cpu_limits_utilization | limits | % |\n| k8s_state.node_allocatable_cpu_limits_used | limits | millicpu |\n| k8s_state.node_allocatable_mem_requests_utilization | requests | % |\n| k8s_state.node_allocatable_mem_requests_used | requests | bytes |\n| k8s_state.node_allocatable_mem_limits_utilization | limits | % |\n| k8s_state.node_allocatable_mem_limits_used | limits | bytes |\n| k8s_state.node_allocatable_pods_utilization | allocated | % |\n| k8s_state.node_allocatable_pods_usage | available, allocated | pods |\n| k8s_state.node_condition | a dimension per condition | status |\n| k8s_state.node_schedulability | schedulable, unschedulable | state |\n| k8s_state.node_pods_readiness | ready | % |\n| k8s_state.node_pods_readiness_state | ready, unready | pods |\n| k8s_state.node_pods_condition | pod_ready, pod_scheduled, pod_initialized, containers_ready | pods |\n| k8s_state.node_pods_phase | running, failed, succeeded, pending | pods |\n| k8s_state.node_containers | containers, init_containers | containers |\n| k8s_state.node_containers_state | running, waiting, terminated | containers |\n| k8s_state.node_init_containers_state | running, waiting, terminated | containers |\n| k8s_state.node_age | age | seconds |\n\n### Per pod\n\nThese metrics refer to the Pod.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n| k8s_namespace | Namespace. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). |\n| k8s_controller_name | Controller name. |\n| k8s_pod_name | Pod name. |\n| k8s_qos_class | Pod QOS class (burstable, guaranteed, besteffort). |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.pod_cpu_requests_used | requests | millicpu |\n| k8s_state.pod_cpu_limits_used | limits | millicpu |\n| k8s_state.pod_mem_requests_used | requests | bytes |\n| k8s_state.pod_mem_limits_used | limits | bytes |\n| k8s_state.pod_condition | pod_ready, pod_scheduled, pod_initialized, containers_ready | state |\n| k8s_state.pod_phase | running, failed, succeeded, pending | state |\n| k8s_state.pod_age | age | seconds |\n| k8s_state.pod_containers | containers, init_containers | containers |\n| k8s_state.pod_containers_state | running, waiting, terminated | containers |\n| k8s_state.pod_init_containers_state | running, waiting, terminated | containers |\n\n### Per container\n\nThese metrics refer to the Pod container.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| k8s_cluster_id | Cluster ID. This is equal to the kube-system namespace UID. |\n| k8s_cluster_name | Cluster name. Cluster name discovery only works in GKE. |\n| k8s_node_name | Node name. |\n| k8s_namespace | Namespace. |\n| k8s_controller_kind | Controller kind (ReplicaSet, DaemonSet, StatefulSet, Job, etc.). |\n| k8s_controller_name | Controller name. |\n| k8s_pod_name | Pod name. |\n| k8s_qos_class | Pod QOS class (burstable, guaranteed, besteffort). |\n| k8s_container_name | Container name. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| k8s_state.pod_container_readiness_state | ready | state |\n| k8s_state.pod_container_restarts | restarts | restarts |\n| k8s_state.pod_container_state | running, waiting, terminated | state |\n| k8s_state.pod_container_waiting_state_reason | a dimension per reason | state |\n| k8s_state.pod_container_terminated_state_reason | a dimension per reason | state |\n\n", "integration_type": "collector", "id": "go.d.plugin-k8s_state-Kubernetes", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/k8s_state/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "lighttpd", "monitored_instance": {"name": "Lighttpd", "link": "https://www.lighttpd.net/", "icon_filename": "lighttpd.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["webserver"], "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "weblog"}, {"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Lighttpd\n\n## Overview\n\nThis collector monitors the activity and performance of Lighttpd servers, and collects metrics such as the number of connections, workers, requests and more.\n\n\nIt sends HTTP requests to the Lighttpd location [server-status](https://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_status), \nwhich is a built-in location that provides metrics about the Lighttpd server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Lighttpd instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://localhost/server-status?auto\n- http://127.0.0.1/server-status?auto\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable Lighttpd status support\n\nTo enable status support, see the [official documentation](https://redmine.lighttpd.net/projects/lighttpd/wiki/Mod_status).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/lighttpd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/lighttpd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nLighttpd with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/server-status?auto\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n\n - name: remote\n url: http://192.0.2.1/server-status?auto\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `lighttpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m lighttpd\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Lighttpd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| lighttpd.requests | requests | requests/s |\n| lighttpd.net | sent | kilobits/s |\n| lighttpd.workers | idle, busy | servers |\n| lighttpd.scoreboard | waiting, open, close, hard_error, keepalive, read, read_post, write, handle_request, request_start, request_end | connections |\n| lighttpd.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-lighttpd-Lighttpd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/lighttpd/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "logind", "monitored_instance": {"name": "systemd-logind users", "link": "https://www.freedesktop.org/software/systemd/man/systemd-logind.service.html", "icon_filename": "users.svg", "categories": ["data-collection.systemd"]}, "keywords": ["logind", "systemd"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# systemd-logind users\n\n## Overview\n\nThis collector monitors number of sessions and users as reported by the `org.freedesktop.login1` DBus API.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/logind.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/logind.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `logind` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m logind\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per systemd-logind users instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logind.sessions | remote, local | sessions |\n| logind.sessions_type | console, graphical, other | sessions |\n| logind.sessions_state | online, closing, active | sessions |\n| logind.users_state | offline, closing, online, lingering, active | users |\n\n", "integration_type": "collector", "id": "go.d.plugin-logind-systemd-logind_users", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/logind/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "logstash", "monitored_instance": {"name": "Logstash", "link": "https://www.elastic.co/products/logstash", "icon_filename": "elastic-logstash.svg", "categories": ["data-collection.logs-servers"]}, "keywords": ["logstatsh"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Logstash\n\n## Overview\n\nThis collector monitors Logstash instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/logstatsh.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/logstatsh.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n\n```\n{% /details %}\n##### HTTP authentication\n\nHTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nHTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://localhost:9600\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:9600\n\n - name: remote\n url: http://192.0.2.1:9600\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `logstash` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m logstash\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Logstash instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logstash.jvm_threads | threads | count |\n| logstash.jvm_mem_heap_used | in_use | percentage |\n| logstash.jvm_mem_heap | committed, used | KiB |\n| logstash.jvm_mem_pools_eden | committed, used | KiB |\n| logstash.jvm_mem_pools_survivor | committed, used | KiB |\n| logstash.jvm_mem_pools_old | committed, used | KiB |\n| logstash.jvm_gc_collector_count | eden, old | counts/s |\n| logstash.jvm_gc_collector_time | eden, old | ms |\n| logstash.open_file_descriptors | open | fd |\n| logstash.event | in, filtered, out | events/s |\n| logstash.event_duration | event, queue | seconds |\n| logstash.uptime | uptime | seconds |\n\n### Per pipeline\n\nThese metrics refer to the pipeline.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| pipeline | pipeline name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| logstash.pipeline_event | in, filtered, out | events/s |\n| logstash.pipeline_event | event, queue | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-logstash-Logstash", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/logstash/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "mongodb", "monitored_instance": {"name": "MongoDB", "link": "https://www.mongodb.com/", "icon_filename": "mongodb.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["mongodb", "databases"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# MongoDB\n\n## Overview\n\nThis collector monitors MongoDB servers.\n\nExecuted queries:\n\n- [serverStatus](https://docs.mongodb.com/manual/reference/command/serverStatus/)\n- [dbStats](https://docs.mongodb.com/manual/reference/command/dbStats/)\n- [replSetGetStatus](https://www.mongodb.com/docs/manual/reference/command/replSetGetStatus/)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create a read-only user\n\nCreate a read-only user for Netdata in the admin database.\n\n- Authenticate as the admin user:\n\n ```bash\n use admin\n db.auth(\"admin\", \"\")\n ```\n\n- Create a user:\n\n ```bash\n db.createUser({\n \"user\":\"netdata\",\n \"pwd\": \"\",\n \"roles\" : [\n {role: 'read', db: 'admin' },\n {role: 'clusterMonitor', db: 'admin'},\n {role: 'read', db: 'local' }\n ]\n })\n ```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mongodb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mongodb.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| uri | MongoDB connection string. See [URI syntax](https://www.mongodb.com/docs/manual/reference/connection-string/). | | True |\n| timeout | Query timeout in seconds. | | False |\n| databases | Databases selector. Determines which database metrics will be collected. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netconfig:password@localhost:27017\n\n```\n{% /details %}\n##### With databases metrics\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netconfig:password@localhost:27017\n databases:\n includes:\n - \"* *\"\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n uri: mongodb://netconfig:password@localhost:27017\n\n - name: remote\n uri: mongodb://netconfig:password@203.0.113.0:27017\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mongodb` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mongodb\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n- WireTiger metrics are available only if [WiredTiger](https://docs.mongodb.com/v6.0/core/wiredtiger/) is used as the\n storage engine.\n- Sharding metrics are available on shards only\n for [mongos](https://www.mongodb.com/docs/manual/reference/program/mongos/).\n\n\n### Per MongoDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.operations_rate | reads, writes, commands | operations/s |\n| mongodb.operations_latency_time | reads, writes, commands | milliseconds |\n| mongodb.operations_by_type_rate | insert, query, update, delete, getmore, command | operations/s |\n| mongodb.document_operations_rate | inserted, deleted, returned, updated | operations/s |\n| mongodb.scanned_indexes_rate | scanned | indexes/s |\n| mongodb.scanned_documents_rate | scanned | documents/s |\n| mongodb.active_clients_count | readers, writers | clients |\n| mongodb.queued_operations_count | reads, writes | operations |\n| mongodb.cursors_open_count | open | cursors |\n| mongodb.cursors_open_no_timeout_count | open_no_timeout | cursors |\n| mongodb.cursors_opened_rate | opened | cursors/s |\n| mongodb.cursors_timed_out_rate | timed_out | cursors/s |\n| mongodb.cursors_by_lifespan_count | le_1s, 1s_5s, 5s_15s, 15s_30s, 30s_1m, 1m_10m, ge_10m | cursors |\n| mongodb.transactions_count | active, inactive, open, prepared | transactions |\n| mongodb.transactions_rate | started, aborted, committed, prepared | transactions/s |\n| mongodb.connections_usage | available, used | connections |\n| mongodb.connections_by_state_count | active, threaded, exhaust_is_master, exhaust_hello, awaiting_topology_changes | connections |\n| mongodb.connections_rate | created | connections/s |\n| mongodb.asserts_rate | regular, warning, msg, user, tripwire, rollovers | asserts/s |\n| mongodb.network_traffic_rate | in, out | bytes/s |\n| mongodb.network_requests_rate | requests | requests/s |\n| mongodb.network_slow_dns_resolutions_rate | slow_dns | resolutions/s |\n| mongodb.network_slow_ssl_handshakes_rate | slow_ssl | handshakes/s |\n| mongodb.memory_resident_size | used | bytes |\n| mongodb.memory_virtual_size | used | bytes |\n| mongodb.memory_page_faults_rate | pgfaults | pgfaults/s |\n| mongodb.memory_tcmalloc_stats | allocated, central_cache_freelist, transfer_cache_freelist, thread_cache_freelists, pageheap_freelist, pageheap_unmapped | bytes |\n| mongodb.wiredtiger_concurrent_read_transactions_usage | available, used | transactions |\n| mongodb.wiredtiger_concurrent_write_transactions_usage | available, used | transactions |\n| mongodb.wiredtiger_cache_usage | used | bytes |\n| mongodb.wiredtiger_cache_dirty_space_size | dirty | bytes |\n| mongodb.wiredtiger_cache_io_rate | read, written | pages/s |\n| mongodb.wiredtiger_cache_evictions_rate | unmodified, modified | pages/s |\n| mongodb.sharding_nodes_count | shard_aware, shard_unaware | nodes |\n| mongodb.sharding_sharded_databases_count | partitioned, unpartitioned | databases |\n| mongodb.sharding_sharded_collections_count | partitioned, unpartitioned | collections |\n\n### Per lock type\n\nThese metrics refer to the lock type.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| lock_type | lock type (e.g. global, database, collection, mutex) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.lock_acquisitions_rate | shared, exclusive, intent_shared, intent_exclusive | acquisitions/s |\n\n### Per commit type\n\nThese metrics refer to the commit type.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| commit_type | commit type (e.g. noShards, singleShard, singleWriteShard) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.transactions_commits_rate | success, fail | commits/s |\n| mongodb.transactions_commits_duration_time | commits | milliseconds |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.database_collection_count | collections | collections |\n| mongodb.database_indexes_count | indexes | indexes |\n| mongodb.database_views_count | views | views |\n| mongodb.database_documents_count | documents | documents |\n| mongodb.database_data_size | data_size | bytes |\n| mongodb.database_storage_size | storage_size | bytes |\n| mongodb.database_index_size | index_size | bytes |\n\n### Per replica set member\n\nThese metrics refer to the replica set member.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| repl_set_member | replica set member name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.repl_set_member_state | primary, startup, secondary, recovering, startup2, unknown, arbiter, down, rollback, removed | state |\n| mongodb.repl_set_member_health_status | up, down | status |\n| mongodb.repl_set_member_replication_lag_time | replication_lag | milliseconds |\n| mongodb.repl_set_member_heartbeat_latency_time | heartbeat_latency | milliseconds |\n| mongodb.repl_set_member_ping_rtt_time | ping_rtt | milliseconds |\n| mongodb.repl_set_member_uptime | uptime | seconds |\n\n### Per shard\n\nThese metrics refer to the shard.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| shard_id | shard id |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mongodb.sharding_shard_chunks_count | chunks | chunks |\n\n", "integration_type": "collector", "id": "go.d.plugin-mongodb-MongoDB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/mongodb/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "mysql", "monitored_instance": {"name": "MariaDB", "link": "https://mariadb.org/", "icon_filename": "mariadb.svg", "categories": ["data-collection.database-servers"]}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["db", "database", "mysql", "maria", "mariadb", "sql"], "most_popular": true}, "overview": "# MariaDB\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- \"[::1]:3306\"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER 'netdata'@'localhost';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | | True |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | False |\n| timeout | Query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n my.cnf: '/etc/my.cnf'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-mysql-MariaDB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/mysql/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "mysql", "monitored_instance": {"name": "MySQL", "link": "https://www.mysql.com/", "categories": ["data-collection.database-servers"], "icon_filename": "mysql.svg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["db", "database", "mysql", "maria", "mariadb", "sql"], "most_popular": true}, "overview": "# MySQL\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- \"[::1]:3306\"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER 'netdata'@'localhost';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | | True |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | False |\n| timeout | Query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n my.cnf: '/etc/my.cnf'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-mysql-MySQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/mysql/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "mysql", "monitored_instance": {"name": "Percona MySQL", "link": "https://www.percona.com/software/mysql-database/percona-server", "icon_filename": "mysql.svg", "categories": ["data-collection.database-servers"]}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["db", "database", "mysql", "maria", "mariadb", "sql"], "most_popular": false}, "overview": "# Percona MySQL\n\n## Overview\n\nThis collector monitors the health and performance of MySQL servers and collects general statistics, replication and user metrics.\n\n\nIt connects to the MySQL instance via a TCP or UNIX socket and executes the following commands:\n\nExecuted queries:\n\n- `SELECT VERSION();`\n- `SHOW GLOBAL STATUS;`\n- `SHOW GLOBAL VARIABLES;`\n- `SHOW SLAVE STATUS;` or `SHOW ALL SLAVES STATUS;` (MariaDBv10.2+)\n- `SHOW USER_STATISTICS;` (MariaDBv10.1.1+)\n- `SELECT TIME,USER FROM INFORMATION_SCHEMA.PROCESSLIST;`\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known MySQL TCP and UNIX sockets:\n\n- /var/run/mysqld/mysqld.sock\n- /var/run/mysqld/mysql.sock\n- /var/lib/mysql/mysql.sock\n- /tmp/mysql.sock\n- 127.0.0.1:3306\n- \"[::1]:3306\"\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nA user account should have the\nfollowing [permissions](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html):\n\n- [`USAGE`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage)\n- [`REPLICATION CLIENT`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_replication-client)\n- [`PROCESS`](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_process)\n\nTo create the `netdata` user with these permissions, execute the following in the MySQL shell:\n\n```mysql\nCREATE USER 'netdata'@'localhost';\nGRANT USAGE, REPLICATION CLIENT, PROCESS ON *.* TO 'netdata'@'localhost';\nFLUSH PRIVILEGES;\n```\n\nThe `netdata` user will have the ability to connect to the MySQL server on localhost without a password. It will only\nbe able to gather statistics without being able to alter or affect operations in any way.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/mysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/mysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | MySQL server DSN (Data Source Name). See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | | True |\n| my.cnf | Specifies the my.cnf file to read the connection settings from the [client] section. | | False |\n| timeout | Query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@unix(/var/lib/mysql/mysql.sock)/\n\n```\n{% /details %}\n##### Connection with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netconfig:password@tcp(127.0.0.1:3306)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n my.cnf: '/etc/my.cnf'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: netdata@tcp(127.0.0.1:3306)/\n\n - name: remote\n dsn: netconfig:password@tcp(203.0.113.0:3306)/\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `mysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m mysql\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mysql_10s_slow_queries ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.queries | number of slow queries in the last 10 seconds |\n| [ mysql_10s_table_locks_immediate ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table immediate locks in the last 10 seconds |\n| [ mysql_10s_table_locks_waited ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | number of table waited locks in the last 10 seconds |\n| [ mysql_10s_waited_locks_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.table_locks | ratio of waited table locks over the last 10 seconds |\n| [ mysql_connections ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.connections_active | client connections utilization |\n| [ mysql_replication ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_status | replication status (0: stopped, 1: working) |\n| [ mysql_replication_lag ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.slave_behind | difference between the timestamp of the latest transaction processed by the SQL thread and the timestamp of the same transaction when it was processed on the master |\n| [ mysql_galera_cluster_size_max_2m ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | maximum galera cluster size in the last 2 minutes starting one minute ago |\n| [ mysql_galera_cluster_size ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_size | current galera cluster size, compared to the maximum size in the last 2 minutes |\n| [ mysql_galera_cluster_state_warn ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Donor/Desynced or Joined |\n| [ mysql_galera_cluster_state_crit ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_state | galera node state is either Undefined or Joining or Error |\n| [ mysql_galera_cluster_status ](https://github.com/netdata/netdata/blob/master/health/health.d/mysql.conf) | mysql.galera_cluster_status | galera node is part of a nonoperational component. This occurs in cases of multiple membership changes that result in a loss of Quorum or in cases of split-brain situations. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MariaDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.net | in, out | kilobits/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries | queries, questions, slow_queries | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.queries_type | select, delete, update, insert, replace | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.handlers | commit, delete, prepare, read_first, read_key, read_next, read_prev, read_rnd, read_rnd_next, rollback, savepoint, savepointrollback, update, write | handlers/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_open_cache_overflows | open_cache | overflows/s | \u2022 | \u2022 | \u2022 |\n| mysql.table_locks | immediate, waited | locks/s | \u2022 | \u2022 | \u2022 |\n| mysql.join_issues | full_join, full_range_join, range, range_check, scan | joins/s | \u2022 | \u2022 | \u2022 |\n| mysql.sort_issues | merge_passes, range, scan | issues/s | \u2022 | \u2022 | \u2022 |\n| mysql.tmp | disk_tables, files, tables | events/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections | all, aborted | connections/s | \u2022 | \u2022 | \u2022 |\n| mysql.connections_active | active, limit, max_active | connections | \u2022 | \u2022 | \u2022 |\n| mysql.threads | connected, cached, running | threads | \u2022 | \u2022 | \u2022 |\n| mysql.threads_created | created | threads/s | \u2022 | \u2022 | \u2022 |\n| mysql.thread_cache_misses | misses | misses | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io | read, write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_ops | reads, writes, fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_io_pending_ops | reads, writes, fsyncs | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_log | waits, write_requests, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_cur_row_lock | current waits | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_rows | inserted, read, updated, deleted | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages | data, dirty, free, misc, total | pages | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_pages_flushed | flush_pages | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_bytes | data, dirty | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead | all, evicted | pages/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_read_ahead_rnd | read-ahead | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_buffer_pool_ops | disk_reads, wait_free | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log | fsyncs, writes | operations | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_fsync_writes | fsyncs | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_os_log_io | write | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.innodb_deadlocks | deadlocks | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.files | files | files | \u2022 | \u2022 | \u2022 |\n| mysql.files_rate | files | files/s | \u2022 | \u2022 | \u2022 |\n| mysql.connection_errors | accept, internal, max, peer_addr, select, tcpwrap | errors/s | \u2022 | \u2022 | \u2022 |\n| mysql.opened_tables | tables | tables/s | \u2022 | \u2022 | \u2022 |\n| mysql.open_tables | cache, tables | tables | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_fetch_query_duration | duration | milliseconds | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_queries_count | system, user | queries | \u2022 | \u2022 | \u2022 |\n| mysql.process_list_longest_query_duration | duration | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_ops | hits, lowmem_prunes, inserts, not_cached | queries/s | \u2022 | \u2022 | \u2022 |\n| mysql.qcache | queries | queries | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_freemem | free | MiB | \u2022 | \u2022 | \u2022 |\n| mysql.qcache_memblocks | free, total | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.galera_writesets | rx, tx | writesets/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_bytes | rx, tx | KiB/s | \u2022 | \u2022 | \u2022 |\n| mysql.galera_queue | rx, tx | writesets | \u2022 | \u2022 | \u2022 |\n| mysql.galera_conflicts | bf_aborts, cert_fails | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_flow_control | paused | ms | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_status | primary, non_primary, disconnected | status | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_state | undefined, joining, donor, joined, synced, error | state | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_size | nodes | nodes | \u2022 | \u2022 | \u2022 |\n| mysql.galera_cluster_weight | weight | weight | \u2022 | \u2022 | \u2022 |\n| mysql.galera_connected | connected | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_ready | ready | boolean | \u2022 | \u2022 | \u2022 |\n| mysql.galera_open_transactions | open | transactions | \u2022 | \u2022 | \u2022 |\n| mysql.galera_thread_count | threads | threads | \u2022 | \u2022 | \u2022 |\n| mysql.key_blocks | unused, used, not_flushed | blocks | \u2022 | \u2022 | \u2022 |\n| mysql.key_requests | reads, writes | requests/s | \u2022 | \u2022 | \u2022 |\n| mysql.key_disk_ops | reads, writes | operations/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_cache | disk, all | transactions/s | \u2022 | \u2022 | \u2022 |\n| mysql.binlog_stmt_cache | disk, all | statements/s | \u2022 | \u2022 | \u2022 |\n\n### Per connection\n\nThese metrics refer to the replication connection.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.slave_behind | seconds | seconds | \u2022 | \u2022 | \u2022 |\n| mysql.slave_status | sql_running, io_running | boolean | \u2022 | \u2022 | \u2022 |\n\n### Per user\n\nThese metrics refer to the MySQL user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username |\n\nMetrics:\n\n| Metric | Dimensions | Unit | MySQL | MariaDB | Percona |\n|:------|:----------|:----|:---:|:---:|:---:|\n| mysql.userstats_cpu | used | percentage | | \u2022 | \u2022 |\n| mysql.userstats_rows | read, sent, updated, inserted, deleted | operations/s | | \u2022 | \u2022 |\n| mysql.userstats_commands | select, update, other | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_commands | denied | commands/s | | \u2022 | \u2022 |\n| mysql.userstats_created_transactions | commit, rollback | transactions/s | | \u2022 | \u2022 |\n| mysql.userstats_binlog_written | written | B/s | | \u2022 | \u2022 |\n| mysql.userstats_empty_queries | empty | queries/s | | \u2022 | \u2022 |\n| mysql.userstats_connections | created | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_lost_connections | lost | connections/s | | \u2022 | \u2022 |\n| mysql.userstats_denied_connections | denied | connections/s | | \u2022 | \u2022 |\n\n", "integration_type": "collector", "id": "go.d.plugin-mysql-Percona_MySQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/mysql/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "nginx", "monitored_instance": {"name": "NGINX", "link": "https://www.nginx.com/", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "nginx.svg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "go.d.plugin", "module_name": "web_log"}, {"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "alternative_monitored_instances": [], "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["nginx", "web", "webserver", "http", "proxy"], "most_popular": true}, "overview": "# NGINX\n\n## Overview\n\nThis collector monitors the activity and performance of NGINX servers, and collects metrics such as the number of connections, their status, and client requests.\n\n\nIt sends HTTP requests to the NGINX location [stub-status](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html), which is a built-in location that provides metrics about the NGINX server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects NGINX instances running on localhost that are listening on port 80.\nOn startup, it tries to collect metrics from:\n\n- http://127.0.0.1/basic_status\n- http://localhost/stub_status\n- http://127.0.0.1/stub_status\n- http://127.0.0.1/nginx_status\n- http://127.0.0.1/status\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable status support\n\nConfigure [ngx_http_stub_status_module](https://nginx.org/en/docs/http/ngx_http_stub_status_module.html).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginx.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginx.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/stub_status\n\n - name: remote\n url: http://192.0.2.1/stub_status\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginx` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginx\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginx.connections | active | connections |\n| nginx.connections_status | reading, writing, idle | connections |\n| nginx.connections_accepted_handled | accepted, handled | connections/s |\n| nginx.requests | requests | requests/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-nginx-NGINX", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/nginx/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "nginxplus", "monitored_instance": {"name": "NGINX Plus", "link": "https://www.nginx.com/products/nginx/", "icon_filename": "nginxplus.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["nginxplus", "nginx", "web", "webserver", "http", "proxy"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# NGINX Plus\n\n## Overview\n\nThis collector monitors NGINX Plus servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Config API\n\nTo configure API, see the [official documentation](https://docs.nginx.com/nginx/admin-guide/monitoring/live-activity-monitoring/#configuring-the-api).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginxplus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginxplus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nNGINX Plus with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n - name: remote\n url: http://192.0.2.1\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginxplus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginxplus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX Plus instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.client_connections_rate | accepted, dropped | connections/s |\n| nginxplus.client_connections_count | active, idle | connections |\n| nginxplus.ssl_handshakes_rate | successful, failed | handshakes/s |\n| nginxplus.ssl_handshakes_failures_rate | no_common_protocol, no_common_cipher, timeout, peer_rejected_cert | failures/s |\n| nginxplus.ssl_verification_errors_rate | no_cert, expired_cert, revoked_cert, hostname_mismatch, other | errors/s |\n| nginxplus.ssl_session_reuses_rate | ssl_session | reuses/s |\n| nginxplus.http_requests_rate | requests | requests/s |\n| nginxplus.http_requests_count | requests | requests |\n| nginxplus.uptime | uptime | seconds |\n\n### Per http server zone\n\nThese metrics refer to the HTTP server zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_server_zone | HTTP server zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_server_zone_requests_rate | requests | requests/s |\n| nginxplus.http_server_zone_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_server_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_server_zone_requests_processing_count | processing | requests |\n| nginxplus.http_server_zone_requests_discarded_rate | discarded | requests/s |\n\n### Per http location zone\n\nThese metrics refer to the HTTP location zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_location_zone | HTTP location zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_location_zone_requests_rate | requests | requests/s |\n| nginxplus.http_location_zone_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_location_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_location_zone_requests_discarded_rate | discarded | requests/s |\n\n### Per http upstream\n\nThese metrics refer to the HTTP upstream.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_upstream_name | HTTP upstream name |\n| http_upstream_zone | HTTP upstream zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_upstream_peers_count | peers | peers |\n| nginxplus.http_upstream_zombies_count | zombie | servers |\n| nginxplus.http_upstream_keepalive_count | keepalive | connections |\n\n### Per http upstream server\n\nThese metrics refer to the HTTP upstream server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_upstream_name | HTTP upstream name |\n| http_upstream_zone | HTTP upstream zone name |\n| http_upstream_server_address | HTTP upstream server address (e.g. 127.0.0.1:81) |\n| http_upstream_server_name | HTTP upstream server name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_upstream_server_requests_rate | requests | requests/s |\n| nginxplus.http_upstream_server_responses_per_code_class_rate | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxplus.http_upstream_server_response_time | response | milliseconds |\n| nginxplus.http_upstream_server_response_header_time | header | milliseconds |\n| nginxplus.http_upstream_server_traffic_rate | received, sent | bytes/s |\n| nginxplus.http_upstream_server_state | up, down, draining, unavail, checking, unhealthy | state |\n| nginxplus.http_upstream_server_connections_count | active | connections |\n| nginxplus.http_upstream_server_downtime | downtime | seconds |\n\n### Per http cache\n\nThese metrics refer to the HTTP cache.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| http_cache | HTTP cache name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.http_cache_state | warm, cold | state |\n| nginxplus.http_cache_iops | served, written, bypass | responses/s |\n| nginxplus.http_cache_io | served, written, bypass | bytes/s |\n| nginxplus.http_cache_size | size | bytes |\n\n### Per stream server zone\n\nThese metrics refer to the Stream server zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_server_zone | Stream server zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_server_zone_connections_rate | accepted | connections/s |\n| nginxplus.stream_server_zone_sessions_per_code_class_rate | 2xx, 4xx, 5xx | sessions/s |\n| nginxplus.stream_server_zone_traffic_rate | received, sent | bytes/s |\n| nginxplus.stream_server_zone_connections_processing_count | processing | connections |\n| nginxplus.stream_server_zone_connections_discarded_rate | discarded | connections/s |\n\n### Per stream upstream\n\nThese metrics refer to the Stream upstream.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_upstream_name | Stream upstream name |\n| stream_upstream_zone | Stream upstream zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_upstream_peers_count | peers | peers |\n| nginxplus.stream_upstream_zombies_count | zombie | servers |\n\n### Per stream upstream server\n\nThese metrics refer to the Stream upstream server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| stream_upstream_name | Stream upstream name |\n| stream_upstream_zone | Stream upstream zone name |\n| stream_upstream_server_address | Stream upstream server address (e.g. 127.0.0.1:12346) |\n| stream_upstream_server_name | Stream upstream server name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.stream_upstream_server_connections_rate | forwarded | connections/s |\n| nginxplus.stream_upstream_server_traffic_rate | received, sent | bytes/s |\n| nginxplus.stream_upstream_server_state | up, down, unavail, checking, unhealthy | state |\n| nginxplus.stream_upstream_server_downtime | downtime | seconds |\n| nginxplus.stream_upstream_server_connections_count | active | connections |\n\n### Per resolver zone\n\nThese metrics refer to the resolver zone.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| resolver_zone | resolver zone name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxplus.resolver_zone_requests_rate | name, srv, addr | requests/s |\n| nginxplus.resolver_zone_responses_rate | noerror, formerr, servfail, nxdomain, notimp, refused, timedout, unknown | responses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-nginxplus-NGINX_Plus", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/nginxplus/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "nginxvts", "monitored_instance": {"name": "NGINX VTS", "link": "https://www.nginx.com/", "icon_filename": "nginx.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["webserver"], "related_resources": {"integrations": {"list": [{"plugin_name": "go.d.plugin", "module_name": "weblog"}, {"plugin_name": "go.d.plugin", "module_name": "httpcheck"}, {"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# NGINX VTS\n\n## Overview\n\nThis collector monitors NGINX servers with [virtual host traffic status module](https://github.com/vozlt/nginx-module-vts).\n\n\nIt sends HTTP requests to the NGINX VTS location [status](https://github.com/vozlt/nginx-module-vts#synopsis), \nwhich is a built-in location that provides metrics about the NGINX VTS server.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects NGINX instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure nginx-vts module\n\nTo configure nginx-vts, see the [https://github.com/vozlt/nginx-module-vts#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nginxvts.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nginxvts.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/status/format/json\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/server-status?auto\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/status/format/json\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/status/format/json\n\n - name: remote\n url: http://192.0.2.1/status/format/json\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nginxvts` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nginxvts\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NGINX VTS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nginxvts.requests_total | requests | requests/s |\n| nginxvts.active_connections | active | connections |\n| nginxvts.connections_total | reading, writing, waiting, accepted, handled | connections/s |\n| nginxvts.uptime | uptime | seconds |\n| nginxvts.shm_usage | max, used | bytes |\n| nginxvts.shm_used_node | used | nodes |\n| nginxvts.server_requests_total | requests | requests/s |\n| nginxvts.server_responses_total | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| nginxvts.server_traffic_total | in, out | bytes/s |\n| nginxvts.server_cache_total | miss, bypass, expired, stale, updating, revalidated, hit, scarce | events/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-nginxvts-NGINX_VTS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/nginxvts/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "ntpd", "monitored_instance": {"name": "NTPd", "link": "https://www.ntp.org/documentation/4.2.8-series/ntpd", "icon_filename": "ntp.png", "categories": ["data-collection.system-clock-and-ntp"]}, "keywords": ["ntpd", "ntp", "time"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# NTPd\n\n## Overview\n\nThis collector monitors the system variables of the local `ntpd` daemon (optional incl. variables of the polled peers) using the NTP Control Message Protocol via UDP socket, similar to `ntpq`, the [standard NTP query program](https://doc.ntp.org/current-stable/ntpq.html).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/ntpd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/ntpd.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address in IP:PORT format. | | True |\n| timeout | Connection/read/write timeout. | | False |\n| collect_peers | Determines whether peer metrics will be collected. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n\n```\n{% /details %}\n##### With peers metrics\n\nCollect peers metrics.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n collect_peers: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:123\n\n - name: remote\n address: 203.0.113.0:123\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ntpd` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m ntpd\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NTPd instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ntpd.sys_offset | offset | milliseconds |\n| ntpd.sys_jitter | system, clock | milliseconds |\n| ntpd.sys_frequency | frequency | ppm |\n| ntpd.sys_wander | clock | ppm |\n| ntpd.sys_rootdelay | delay | milliseconds |\n| ntpd.sys_rootdisp | dispersion | milliseconds |\n| ntpd.sys_stratum | stratum | stratum |\n| ntpd.sys_tc | current, minimum | log2 |\n| ntpd.sys_precision | precision | log2 |\n\n### Per peer\n\nThese metrics refer to the NTPd peer.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| peer_address | peer's source IP address |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ntpd.peer_offset | offset | milliseconds |\n| ntpd.peer_delay | delay | milliseconds |\n| ntpd.peer_dispersion | dispersion | milliseconds |\n| ntpd.peer_jitter | jitter | milliseconds |\n| ntpd.peer_xleave | xleave | milliseconds |\n| ntpd.peer_rootdelay | rootdelay | milliseconds |\n| ntpd.peer_rootdisp | dispersion | milliseconds |\n| ntpd.peer_stratum | stratum | stratum |\n| ntpd.peer_hmode | hmode | hmode |\n| ntpd.peer_pmode | pmode | pmode |\n| ntpd.peer_hpoll | hpoll | log2 |\n| ntpd.peer_ppoll | ppoll | log2 |\n| ntpd.peer_precision | precision | log2 |\n\n", "integration_type": "collector", "id": "go.d.plugin-ntpd-NTPd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/ntpd/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "nvidia_smi", "monitored_instance": {"name": "Nvidia GPU", "link": "https://www.nvidia.com/en-us/", "icon_filename": "nvidia.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": ["nvidia", "gpu", "hardware"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Nvidia GPU\n\n## Overview\n\nThis collector monitors GPUs performance metrics using\nthe [nvidia-smi](https://developer.nvidia.com/nvidia-system-management-interface) CLI tool.\n\n> **Warning**: under development, [loop mode](https://github.com/netdata/netdata/issues/14522) not implemented yet.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable in go.d.conf.\n\nThis collector is disabled by default. You need to explicitly enable it in the `go.d.conf` file.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nvidia_smi.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nvidia_smi.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| binary_path | Path to nvidia_smi binary. The default is \"nvidia_smi\" and the executable is looked for in the directories specified in the PATH environment variable. | | False |\n| timeout | nvidia_smi binary execution timeout. | | False |\n| use_csv_format | Used format when requesting GPU information. XML is used if set to 'no'. | | False |\n\n{% /details %}\n#### Examples\n\n##### XML format\n\nUse XML format when requesting GPU information.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: nvidia_smi\n use_csv_format: no\n\n```\n{% /details %}\n##### Custom binary path\n\nThe executable is not in the directories specified in the PATH environment variable.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: nvidia_smi\n binary_path: /usr/local/sbin/nvidia_smi\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nvidia_smi` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nvidia_smi\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per gpu\n\nThese metrics refer to the GPU.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| uuid | GPU id (e.g. 00000000:00:04.0) |\n| product_name | GPU product name (e.g. NVIDIA A100-SXM4-40GB) |\n\nMetrics:\n\n| Metric | Dimensions | Unit | XML | CSV |\n|:------|:----------|:----|:---:|:---:|\n| nvidia_smi.gpu_pcie_bandwidth_usage | rx, tx | B/s | \u2022 | |\n| nvidia_smi.gpu_pcie_bandwidth_utilization | rx, tx | % | \u2022 | |\n| nvidia_smi.gpu_fan_speed_perc | fan_speed | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_utilization | gpu | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_memory_utilization | memory | % | \u2022 | \u2022 |\n| nvidia_smi.gpu_decoder_utilization | decoder | % | \u2022 | |\n| nvidia_smi.gpu_encoder_utilization | encoder | % | \u2022 | |\n| nvidia_smi.gpu_frame_buffer_memory_usage | free, used, reserved | B | \u2022 | \u2022 |\n| nvidia_smi.gpu_bar1_memory_usage | free, used | B | \u2022 | |\n| nvidia_smi.gpu_temperature | temperature | Celsius | \u2022 | \u2022 |\n| nvidia_smi.gpu_voltage | voltage | V | \u2022 | |\n| nvidia_smi.gpu_clock_freq | graphics, video, sm, mem | MHz | \u2022 | \u2022 |\n| nvidia_smi.gpu_power_draw | power_draw | Watts | \u2022 | \u2022 |\n| nvidia_smi.gpu_performance_state | P0-P15 | state | \u2022 | \u2022 |\n| nvidia_smi.gpu_mig_mode_current_status | enabled, disabled | status | \u2022 | |\n| nvidia_smi.gpu_mig_devices_count | mig | devices | \u2022 | |\n\n### Per mig\n\nThese metrics refer to the Multi-Instance GPU (MIG).\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| uuid | GPU id (e.g. 00000000:00:04.0) |\n| product_name | GPU product name (e.g. NVIDIA A100-SXM4-40GB) |\n| gpu_instance_id | GPU instance id (e.g. 1) |\n\nMetrics:\n\n| Metric | Dimensions | Unit | XML | CSV |\n|:------|:----------|:----|:---:|:---:|\n| nvidia_smi.gpu_mig_frame_buffer_memory_usage | free, used, reserved | B | \u2022 | |\n| nvidia_smi.gpu_mig_bar1_memory_usage | free, used | B | \u2022 | |\n\n", "integration_type": "collector", "id": "go.d.plugin-nvidia_smi-Nvidia_GPU", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/nvidia_smi/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "nvme", "monitored_instance": {"name": "NVMe devices", "link": "", "icon_filename": "nvme.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": ["nvme"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# NVMe devices\n\n## Overview\n\nThis collector monitors the health of NVMe devices using the command line tool [nvme](https://github.com/linux-nvme/nvme-cli#nvme-cli), which can only be run by the root user. It uses `sudo` and assumes it is set up so that the netdata user can execute `nvme` as root without a password.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install nvme-cli\n\nSee [Distro Support](https://github.com/linux-nvme/nvme-cli#distro-support). Install `nvme-cli` using your distribution's package manager.\n\n\n#### Allow netdata to execute nvme\n\nAdd the netdata user to `/etc/sudoers` (use `which nvme` to find the full path to the binary):\n\n```bash\nnetdata ALL=(root) NOPASSWD: /usr/sbin/nvme\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/nvme.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/nvme.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| binary_path | Path to nvme binary. The default is \"nvme\" and the executable is looked for in the directories specified in the PATH environment variable. | | False |\n| timeout | nvme binary execution timeout. | | False |\n\n{% /details %}\n#### Examples\n\n##### Custom binary path\n\nThe executable is not in the directories specified in the PATH environment variable.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: nvme\n binary_path: /usr/local/sbin/nvme\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nvme` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m nvme\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ nvme_device_critical_warnings_state ](https://github.com/netdata/netdata/blob/master/health/health.d/nvme.conf) | nvme.device_critical_warnings_state | NVMe device ${label:device} has critical warnings |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per device\n\nThese metrics refer to the NVME device.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | NVMe device name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nvme.device_estimated_endurance_perc | used | % |\n| nvme.device_available_spare_perc | spare | % |\n| nvme.device_composite_temperature | temperature | celsius |\n| nvme.device_io_transferred_count | read, written | bytes |\n| nvme.device_power_cycles_count | power | cycles |\n| nvme.device_power_on_time | power-on | seconds |\n| nvme.device_critical_warnings_state | available_spare, temp_threshold, nvm_subsystem_reliability, read_only, volatile_mem_backup_failed, persistent_memory_read_only | state |\n| nvme.device_unsafe_shutdowns_count | unsafe | shutdowns |\n| nvme.device_media_errors_rate | media | errors/s |\n| nvme.device_error_log_entries_rate | error_log | entries/s |\n| nvme.device_warning_composite_temperature_time | wctemp | seconds |\n| nvme.device_critical_composite_temperature_time | cctemp | seconds |\n| nvme.device_thermal_mgmt_temp1_transitions_rate | temp1 | transitions/s |\n| nvme.device_thermal_mgmt_temp2_transitions_rate | temp2 | transitions/s |\n| nvme.device_thermal_mgmt_temp1_time | temp1 | seconds |\n| nvme.device_thermal_mgmt_temp2_time | temp2 | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-nvme-NVMe_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/nvme/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "openvpn", "monitored_instance": {"name": "OpenVPN", "link": "https://openvpn.net/", "icon_filename": "openvpn.svg", "categories": ["data-collection.vpns"]}, "keywords": ["openvpn", "vpn"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# OpenVPN\n\n## Overview\n\nThis collector monitors OpenVPN servers.\n\nIt uses OpenVPN [Management Interface](https://openvpn.net/community-resources/management-interface/) to collect metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable in go.d.conf.\n\nThis collector is disabled by default. You need to explicitly enable it in [go.d.conf](https://github.com/netdata/go.d.plugin/blob/master/config/go.d.conf).\n\nFrom the documentation for the OpenVPN Management Interface:\n> Currently, the OpenVPN daemon can at most support a single management client any one time.\n\nIt is disabled to not break other tools which use `Management Interface`.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/openvpn.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/openvpn.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address in IP:PORT format. | | True |\n| per_user_stats | User selector. Determines which user metrics will be collected. | | False |\n| connect_timeout | Connection timeout in seconds. The timeout includes name resolution, if required. | | False |\n| read_timeout | Read timeout in seconds. Sets deadline for read calls. | | False |\n| write_timeout | Write timeout in seconds. Sets deadline for write calls. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n\n```\n{% /details %}\n##### With user metrics\n\nCollect metrics of all users.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n per_user_stats:\n includes:\n - \"* *\"\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:7505\n\n - name: remote\n address: 203.0.113.0:7505\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openvpn` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m openvpn\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenVPN instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.active_clients | clients | clients |\n| openvpn.total_traffic | in, out | kilobits/s |\n\n### Per user\n\nThese metrics refer to the VPN user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| username | VPN username |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.user_traffic | in, out | kilobits/s |\n| openvpn.user_connection_time | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-openvpn-OpenVPN", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/openvpn/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "openvpn_status_log", "monitored_instance": {"name": "OpenVPN status log", "link": "https://openvpn.net/", "icon_filename": "openvpn.svg", "categories": ["data-collection.vpns"]}, "keywords": ["openvpn", "vpn"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# OpenVPN status log\n\n## Overview\n\nThis collector monitors OpenVPN server.\n\nIt parses server log files and provides summary and per user metrics.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/openvpn_status_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/openvpn_status_log.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| log_path | Path to status log. | | True |\n| per_user_stats | User selector. Determines which user metrics will be collected. | | False |\n\n{% /details %}\n#### Examples\n\n##### With user metrics\n\nCollect metrics of all users.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n per_user_stats:\n includes:\n - \"* *\"\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openvpn_status_log` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m openvpn_status_log\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenVPN status log instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.active_clients | clients | clients |\n| openvpn.total_traffic | in, out | kilobits/s |\n\n### Per user\n\nThese metrics refer to the VPN user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| username | VPN username |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openvpn.user_traffic | in, out | kilobits/s |\n| openvpn.user_connection_time | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-openvpn_status_log-OpenVPN_status_log", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/openvpn_status_log/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "pgbouncer", "monitored_instance": {"name": "PgBouncer", "link": "https://www.pgbouncer.org/", "icon_filename": "postgres.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["pgbouncer"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# PgBouncer\n\n## Overview\n\nThis collector monitors PgBouncer servers.\n\nExecuted queries:\n\n- `SHOW VERSION;`\n- `SHOW CONFIG;`\n- `SHOW DATABASES;`\n- `SHOW STATS;`\n- `SHOW POOLS;`\n\nInformation about the queries can be found in the [PgBouncer Documentation](https://www.pgbouncer.org/usage.html).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nCreate a user with `stats_users` permissions to query your PgBouncer instance.\n\nTo create the `netdata` user:\n\n- Add `netdata` user to the `pgbouncer.ini` file:\n\n ```text\n stats_users = netdata\n ```\n\n- Add a password for the `netdata` user to the `userlist.txt` file:\n\n ```text\n \"netdata\" \"\"\n ```\n\n- To verify the credentials, run the following command\n\n ```bash\n psql -h localhost -U netdata -p 6432 pgbouncer -c \"SHOW VERSION;\" >/dev/null 2>&1 && echo OK || echo FAIL\n ```\n\n When it prompts for a password, enter the password you added to `userlist.txt`.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pgbouncer.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pgbouncer.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | PgBouncer server DSN (Data Source Name). See [DSN syntax](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING). | | True |\n| timeout | Query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'postgres://postgres:postgres@127.0.0.1:6432/pgbouncer'\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'host=/tmp dbname=pgbouncer user=postgres port=6432'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'postgres://postgres:postgres@127.0.0.1:6432/pgbouncer'\n\n - name: remote\n dsn: 'postgres://postgres:postgres@203.0.113.10:6432/pgbouncer'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pgbouncer` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pgbouncer\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PgBouncer instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pgbouncer.client_connections_utilization | used | percentage |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| postgres_database | Postgres database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pgbouncer.db_client_connections | active, waiting, cancel_req | connections |\n| pgbouncer.db_server_connections | active, idle, used, tested, login | connections |\n| pgbouncer.db_server_connections_utilization | used | percentage |\n| pgbouncer.db_clients_wait_time | time | seconds |\n| pgbouncer.db_client_max_wait_time | time | seconds |\n| pgbouncer.db_transactions | transactions | transactions/s |\n| pgbouncer.db_transactions_time | time | seconds |\n| pgbouncer.db_transaction_avg_time | time | seconds |\n| pgbouncer.db_queries | queries | queries/s |\n| pgbouncer.db_queries_time | time | seconds |\n| pgbouncer.db_query_avg_time | time | seconds |\n| pgbouncer.db_network_io | received, sent | B/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-pgbouncer-PgBouncer", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/pgbouncer/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "phpdaemon", "monitored_instance": {"name": "phpDaemon", "link": "https://github.com/kakserpom/phpdaemon", "icon_filename": "php.svg", "categories": ["data-collection.apm"]}, "keywords": ["phpdaemon", "php"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# phpDaemon\n\n## Overview\n\nThis collector monitors phpDaemon instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable phpDaemon's HTTP server\n\nStatistics expected to be in JSON format.\n\n\nphpDaemon configuration
\n\nInstruction from [@METAJIJI](https://github.com/METAJIJI).\n\nTo enable `phpd` statistics on http, you must enable the http server and write an application.\nApplication is important, because standalone application [ServerStatus.php](https://github.com/kakserpom/phpdaemon/blob/master/PHPDaemon/Applications/ServerStatus.php) provides statistics in html format and unusable for `netdata`.\n\n```php\n// /opt/phpdaemon/conf/phpd.conf\n\npath /opt/phpdaemon/conf/AppResolver.php;\nPool:HTTPServer {\n privileged;\n listen '127.0.0.1';\n port 8509;\n}\n```\n\n```php\n// /opt/phpdaemon/conf/AppResolver.php\n\nattrs->server['DOCUMENT_URI'], $m)) {\n return $m[1];\n }\n }\n}\n\nreturn new MyAppResolver;\n```\n\n```php\n/opt/phpdaemon/conf/PHPDaemon/Applications/FullStatus.php\n\nheader('Content-Type: application/javascript; charset=utf-8');\n\n $stat = Daemon::getStateOfWorkers();\n $stat['uptime'] = time() - Daemon::$startTime;\n echo json_encode($stat);\n }\n}\n```\n\n \n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/phpdaemon.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/phpdaemon.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n\n```\n{% /details %}\n##### HTTP authentication\n\nHTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nHTTPS with self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8509/FullStatus\n\n - name: remote\n url: http://192.0.2.1:8509/FullStatus\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `phpdaemon` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m phpdaemon\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per phpDaemon instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| phpdaemon.workers | alive, shutdown | workers |\n| phpdaemon.alive_workers | idle, busy, reloading | workers |\n| phpdaemon.idle_workers | preinit, init, initialized | workers |\n| phpdaemon.uptime | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-phpdaemon-phpDaemon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/phpdaemon/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "phpfpm", "monitored_instance": {"name": "PHP-FPM", "link": "https://php-fpm.org/", "icon_filename": "php.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["phpfpm", "php"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# PHP-FPM\n\n## Overview\n\nThis collector monitors PHP-FPM instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable status page\n\nUncomment the `pm.status_path = /status` variable in the `php-fpm` config file.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/phpfpm.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/phpfpm.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| socket | Server Unix socket. | | False |\n| address | Server address in IP:PORT format. | | False |\n| fcgi_path | Status path. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### HTTP\n\nCollecting data from a local instance over HTTP.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost/status?full&json\n\n```\n{% /details %}\n##### Unix socket\n\nCollecting data from a local instance over Unix socket.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n socket: '/tmp/php-fpm.sock'\n\n```\n{% /details %}\n##### TCP socket\n\nCollecting data from a local instance over TCP socket.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:9000\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost/status?full&json\n\n - name: remote\n url: http://203.0.113.10/status?full&json\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `phpfpm` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m phpfpm\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PHP-FPM instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| phpfpm.connections | active, max_active, idle | connections |\n| phpfpm.requests | requests | requests/s |\n| phpfpm.performance | max_children_reached, slow_requests | status |\n| phpfpm.request_duration | min, max, avg | milliseconds |\n| phpfpm.request_cpu | min, max, avg | percentage |\n| phpfpm.request_mem | min, max, avg | KB |\n\n", "integration_type": "collector", "id": "go.d.plugin-phpfpm-PHP-FPM", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/phpfpm/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "pihole", "monitored_instance": {"name": "Pi-hole", "link": "https://pi-hole.net", "icon_filename": "pihole.png", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["pihole"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Pi-hole\n\n## Overview\n\nThis collector monitors Pi-hole instances using [PHP API](https://github.com/pi-hole/AdminLTE).\n\nThe data provided by the API is for the last 24 hours. All collected values refer to this time period and not to the\nmodule's collection interval.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pihole.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pihole.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| setup_vars_path | Path to setupVars.conf. This file is used to get the web password. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nRemote instance with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://203.0.113.11\n tls_skip_verify: yes\n password: 1ebd33f882f9aa5fac26a7cb74704742f91100228eb322e41b7bd6e6aeb8f74b\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1\n\n - name: remote\n url: http://203.0.113.10\n password: 1ebd33f882f9aa5fac26a7cb74704742f91100228eb322e41b7bd6e6aeb8f74b\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pihole` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pihole\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ pihole_blocklist_last_update ](https://github.com/netdata/netdata/blob/master/health/health.d/pihole.conf) | pihole.blocklist_last_update | gravity.list (blocklist) file last update time |\n| [ pihole_status ](https://github.com/netdata/netdata/blob/master/health/health.d/pihole.conf) | pihole.unwanted_domains_blocking_status | unwanted domains blocking is disabled |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pi-hole instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pihole.dns_queries_total | queries | queries |\n| pihole.dns_queries | cached, blocked, forwarded | queries |\n| pihole.dns_queries_percentage | cached, blocked, forwarded | percentage |\n| pihole.unique_clients | unique | clients |\n| pihole.domains_on_blocklist | blocklist | domains |\n| pihole.blocklist_last_update | ago | seconds |\n| pihole.unwanted_domains_blocking_status | enabled, disabled | status |\n| pihole.dns_queries_types | a, aaaa, any, ptr, soa, srv, txt | percentage |\n| pihole.dns_queries_forwarded_destination | cached, blocked, other | percentage |\n\n", "integration_type": "collector", "id": "go.d.plugin-pihole-Pi-hole", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/pihole/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "pika", "monitored_instance": {"name": "Pika", "link": "https://github.com/OpenAtomFoundation/pika", "icon_filename": "pika.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["pika", "databases"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Pika\n\n## Overview\n\nThis collector monitors Pika servers.\n\nIt collects information and statistics about the server executing the following commands:\n\n- [`INFO ALL`](https://github.com/OpenAtomFoundation/pika/wiki/pika-info%E4%BF%A1%E6%81%AF%E8%AF%B4%E6%98%8E)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pika.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pika.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Pika server address. | | True |\n| timeout | Dial (establishing new connections), read (socket reads) and write (socket writes) timeout in seconds. | | False |\n| username | Username used for authentication. | | False |\n| password | Password used for authentication. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://@localhost:9221'\n\n```\n{% /details %}\n##### TCP socket with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:9221'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:9221'\n\n - name: remote\n address: 'redis://user:password@203.0.113.0:9221'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pika` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pika\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pika instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pika.connections | accepted | connections |\n| pika.clients | connected | clients |\n| pika.memory | used | bytes |\n| pika.connected_replicas | connected | replicas |\n| pika.commands | processed | commands/s |\n| pika.commands_calls | a dimension per command | calls/s |\n| pika.database_strings_keys | a dimension per database | keys |\n| pika.database_strings_expires_keys | a dimension per database | keys |\n| pika.database_strings_invalid_keys | a dimension per database | keys |\n| pika.database_hashes_keys | a dimension per database | keys |\n| pika.database_hashes_expires_keys | a dimension per database | keys |\n| pika.database_hashes_invalid_keys | a dimension per database | keys |\n| pika.database_lists_keys | a dimension per database | keys |\n| pika.database_lists_expires_keys | a dimension per database | keys |\n| pika.database_lists_invalid_keys | a dimension per database | keys |\n| pika.database_zsets_keys | a dimension per database | keys |\n| pika.database_zsets_expires_keys | a dimension per database | keys |\n| pika.database_zsets_invalid_keys | a dimension per database | keys |\n| pika.database_sets_keys | a dimension per database | keys |\n| pika.database_sets_expires_keys | a dimension per database | keys |\n| pika.database_sets_invalid_keys | a dimension per database | keys |\n| pika.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-pika-Pika", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/pika/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "ping", "monitored_instance": {"name": "Ping", "link": "", "icon_filename": "globe.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": ["ping"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Ping\n\n## Overview\n\nThis module measures round-tripe time and packet loss by sending ping messages to network hosts.\n\nThere are two operational modes:\n\n- privileged (send raw ICMP ping, default). Requires\n CAP_NET_RAW [capability](https://man7.org/linux/man-pages/man7/capabilities.7.html) or root privileges:\n > **Note**: set automatically during Netdata installation.\n\n ```bash\n sudo setcap CAP_NET_RAW=eip /usr/libexec/netdata/plugins.d/go.d.plugin\n ```\n\n- unprivileged (send UDP ping, Linux only).\n Requires configuring [ping_group_range](https://www.man7.org/linux/man-pages/man7/icmp.7.html):\n\n ```bash\n sudo sysctl -w net.ipv4.ping_group_range=\"0 2147483647\"\n ```\n To persist the change add `net.ipv4.ping_group_range=\"0 2147483647\"` to `/etc/sysctl.conf` and\n execute `sudo sysctl -p`.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/ping.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/ping.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| hosts | Network hosts. | | True |\n| privileged | Ping packets type. \"no\" means send an \"unprivileged\" UDP ping, \"yes\" - raw ICMP ping. | | False |\n| packets | Number of ping packets to send. | | False |\n| interval | Timeout between sending ping packets. | | False |\n\n{% /details %}\n#### Examples\n\n##### IPv4 hosts\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: example\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n```\n{% /details %}\n##### Unprivileged mode\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: example\n privileged: no\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nMultiple instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: example1\n hosts:\n - 192.0.2.0\n - 192.0.2.1\n\n - name: example2\n packets: 10\n hosts:\n - 192.0.2.3\n - 192.0.2.4\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ping` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m ping\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ping_host_reachable ](https://github.com/netdata/netdata/blob/master/health/health.d/ping.conf) | ping.host_packet_loss | network host ${lab1el:host} reachability status |\n| [ ping_packet_loss ](https://github.com/netdata/netdata/blob/master/health/health.d/ping.conf) | ping.host_packet_loss | packet loss percentage to the network host ${label:host} over the last 10 minutes |\n| [ ping_host_latency ](https://github.com/netdata/netdata/blob/master/health/health.d/ping.conf) | ping.host_rtt | average latency to the network host ${label:host} over the last 10 seconds |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per host\n\nThese metrics refer to the remote host.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | remote host |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ping.host_rtt | min, max, avg | milliseconds |\n| ping.host_std_dev_rtt | std_dev | milliseconds |\n| ping.host_packet_loss | loss | percentage |\n| ping.host_packets | received, sent | packets |\n\n", "integration_type": "collector", "id": "go.d.plugin-ping-Ping", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/ping/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "portcheck", "monitored_instance": {"name": "TCP Endpoints", "link": "", "icon_filename": "globe.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# TCP Endpoints\n\n## Overview\n\nThis collector monitors TCP services availability and response time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/portcheck.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/portcheck.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| host | Remote host address in IPv4, IPv6 format, or DNS name. | | True |\n| ports | Remote host ports. Must be specified in numeric format. | | True |\n| timeout | HTTP request timeout. | | False |\n\n{% /details %}\n#### Examples\n\n##### Check SSH and telnet\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: server1\n host: 127.0.0.1\n ports:\n - 22\n - 23\n\n```\n{% /details %}\n##### Check webserver with IPv6 address\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: server2\n host: \"[2001:DB8::1]\"\n ports:\n - 80\n - 8080\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nMultiple instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: server1\n host: 127.0.0.1\n ports:\n - 22\n - 23\n\n - name: server2\n host: 203.0.113.10\n ports:\n - 22\n - 23\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `portcheck` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m portcheck\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ portcheck_service_reachable ](https://github.com/netdata/netdata/blob/master/health/health.d/portcheck.conf) | portcheck.status | TCP host ${label:host} port ${label:port} liveness status |\n| [ portcheck_connection_timeouts ](https://github.com/netdata/netdata/blob/master/health/health.d/portcheck.conf) | portcheck.status | percentage of timed-out TCP connections to host ${label:host} port ${label:port} in the last 5 minutes |\n| [ portcheck_connection_fails ](https://github.com/netdata/netdata/blob/master/health/health.d/portcheck.conf) | portcheck.status | percentage of failed TCP connections to host ${label:host} port ${label:port} in the last 5 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per tcp endpoint\n\nThese metrics refer to the TCP endpoint.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | host |\n| port | port |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| portcheck.status | success, failed, timeout | boolean |\n| portcheck.state_duration | time | seconds |\n| portcheck.latency | time | ms |\n\n", "integration_type": "collector", "id": "go.d.plugin-portcheck-TCP_Endpoints", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/portcheck/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "postgres", "monitored_instance": {"name": "PostgreSQL", "link": "https://www.postgresql.org/", "categories": ["data-collection.database-servers"], "icon_filename": "postgres.svg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "alternative_monitored_instances": [], "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["db", "database", "postgres", "postgresql", "sql"], "most_popular": true}, "overview": "# PostgreSQL\n\n## Overview\n\nThis collector monitors the activity and performance of Postgres servers, collects replication statistics, metrics for each database, table and index, and more.\n\n\nIt establishes a connection to the Postgres instance via a TCP or UNIX socket.\nTo collect metrics for database tables and indexes, it establishes an additional connection for each discovered database.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by trying to connect as root and netdata using known PostgreSQL TCP and UNIX sockets:\n\n- 127.0.0.1:5432\n- /var/run/postgresql/\n\n\n#### Limits\n\nTable and index metrics are not collected for databases with more than 50 tables or 250 indexes.\nThese limits can be changed in the configuration file.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create netdata user\n\nCreate a user with granted `pg_monitor`\nor `pg_read_all_stat` [built-in role](https://www.postgresql.org/docs/current/predefined-roles.html).\n\nTo create the `netdata` user with these permissions, execute the following in the psql session, as a user with CREATEROLE privileges:\n\n```postgresql\nCREATE USER netdata;\nGRANT pg_monitor TO netdata;\n```\n\nAfter creating the new user, restart the Netdata agent with `sudo systemctl restart netdata`, or\nthe [appropriate method](https://github.com/netdata/netdata/blob/master/docs/configure/start-stop-restart.md) for your\nsystem.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/postgres.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/postgres.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | Postgres server DSN (Data Source Name). See [DSN syntax](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING). | | True |\n| timeout | Query timeout in seconds. | | False |\n| collect_databases_matching | Databases selector. Determines which database metrics will be collected. Syntax is [simple patterns](https://github.com/netdata/go.d.plugin/tree/master/pkg/matcher#simple-patterns-matcher). | | False |\n| max_db_tables | Maximum number of tables in the database. Table metrics will not be collected for databases that have more tables than max_db_tables. 0 means no limit. | | False |\n| max_db_indexes | Maximum number of indexes in the database. Index metrics will not be collected for databases that have more indexes than max_db_indexes. 0 means no limit. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n```yaml\njobs:\n - name: local\n dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'\n\n```\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'host=/var/run/postgresql dbname=postgres user=netdata'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: 'postgresql://netdata@127.0.0.1:5432/postgres'\n\n - name: remote\n dsn: 'postgresql://netdata@203.0.113.0:5432/postgres'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `postgres` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m postgres\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ postgres_total_connection_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.connections_utilization | average total connection utilization over the last minute |\n| [ postgres_acquired_locks_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.locks_utilization | average acquired locks utilization over the last minute |\n| [ postgres_txid_exhaustion_perc ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.txid_exhaustion_perc | percent towards TXID wraparound |\n| [ postgres_db_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.db_cache_io_ratio | average cache hit ratio in db ${label:database} over the last minute |\n| [ postgres_db_transactions_rollback_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.db_cache_io_ratio | average aborted transactions percentage in db ${label:database} over the last five minutes |\n| [ postgres_db_deadlocks_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.db_deadlocks_rate | number of deadlocks detected in db ${label:database} in the last minute |\n| [ postgres_table_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_cache_io_ratio | average cache hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_index_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_index_cache_io_ratio | average index cache hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_toast_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_toast_cache_io_ratio | average TOAST hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_toast_index_cache_io_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_toast_index_cache_io_ratio | average index TOAST hit ratio in db ${label:database} table ${label:table} over the last minute |\n| [ postgres_table_bloat_size_perc ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_bloat_size_perc | bloat size percentage in db ${label:database} table ${label:table} |\n| [ postgres_table_last_autovacuum_time ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_autovacuum_since_time | time elapsed since db ${label:database} table ${label:table} was vacuumed by the autovacuum daemon |\n| [ postgres_table_last_autoanalyze_time ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.table_autoanalyze_since_time | time elapsed since db ${label:database} table ${label:table} was analyzed by the autovacuum daemon |\n| [ postgres_index_bloat_size_perc ](https://github.com/netdata/netdata/blob/master/health/health.d/postgres.conf) | postgres.index_bloat_size_perc | bloat size percentage in db ${label:database} table ${label:table} index ${label:index} |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PostgreSQL instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.connections_utilization | used | percentage |\n| postgres.connections_usage | available, used | connections |\n| postgres.connections_state_count | active, idle, idle_in_transaction, idle_in_transaction_aborted, disabled | connections |\n| postgres.transactions_duration | a dimension per bucket | transactions/s |\n| postgres.queries_duration | a dimension per bucket | queries/s |\n| postgres.locks_utilization | used | percentage |\n| postgres.checkpoints_rate | scheduled, requested | checkpoints/s |\n| postgres.checkpoints_time | write, sync | milliseconds |\n| postgres.bgwriter_halts_rate | maxwritten | events/s |\n| postgres.buffers_io_rate | checkpoint, backend, bgwriter | B/s |\n| postgres.buffers_backend_fsync_rate | fsync | calls/s |\n| postgres.buffers_allocated_rate | allocated | B/s |\n| postgres.wal_io_rate | write | B/s |\n| postgres.wal_files_count | written, recycled | files |\n| postgres.wal_archiving_files_count | ready, done | files/s |\n| postgres.autovacuum_workers_count | analyze, vacuum_analyze, vacuum, vacuum_freeze, brin_summarize | workers |\n| postgres.txid_exhaustion_towards_autovacuum_perc | emergency_autovacuum | percentage |\n| postgres.txid_exhaustion_perc | txid_exhaustion | percentage |\n| postgres.txid_exhaustion_oldest_txid_num | xid | xid |\n| postgres.catalog_relations_count | ordinary_table, index, sequence, toast_table, view, materialized_view, composite_type, foreign_table, partitioned_table, partitioned_index | relations |\n| postgres.catalog_relations_size | ordinary_table, index, sequence, toast_table, view, materialized_view, composite_type, foreign_table, partitioned_table, partitioned_index | B |\n| postgres.uptime | uptime | seconds |\n| postgres.databases_count | databases | databases |\n\n### Per repl application\n\nThese metrics refer to the replication application.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| application | application name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.replication_app_wal_lag_size | sent_lag, write_lag, flush_lag, replay_lag | B |\n| postgres.replication_app_wal_lag_time | write_lag, flush_lag, replay_lag | seconds |\n\n### Per repl slot\n\nThese metrics refer to the replication slot.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| slot | replication slot name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.replication_slot_files_count | wal_keep, pg_replslot_files | files |\n\n### Per database\n\nThese metrics refer to the database.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.db_transactions_ratio | committed, rollback | percentage |\n| postgres.db_transactions_rate | committed, rollback | transactions/s |\n| postgres.db_connections_utilization | used | percentage |\n| postgres.db_connections_count | connections | connections |\n| postgres.db_cache_io_ratio | miss | percentage |\n| postgres.db_io_rate | memory, disk | B/s |\n| postgres.db_ops_fetched_rows_ratio | fetched | percentage |\n| postgres.db_ops_read_rows_rate | returned, fetched | rows/s |\n| postgres.db_ops_write_rows_rate | inserted, deleted, updated | rows/s |\n| postgres.db_conflicts_rate | conflicts | queries/s |\n| postgres.db_conflicts_reason_rate | tablespace, lock, snapshot, bufferpin, deadlock | queries/s |\n| postgres.db_deadlocks_rate | deadlocks | deadlocks/s |\n| postgres.db_locks_held_count | access_share, row_share, row_exclusive, share_update, share, share_row_exclusive, exclusive, access_exclusive | locks |\n| postgres.db_locks_awaited_count | access_share, row_share, row_exclusive, share_update, share, share_row_exclusive, exclusive, access_exclusive | locks |\n| postgres.db_temp_files_created_rate | created | files/s |\n| postgres.db_temp_files_io_rate | written | B/s |\n| postgres.db_size | size | B |\n\n### Per table\n\nThese metrics refer to the database table.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| schema | schema name |\n| table | table name |\n| parent_table | parent table name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.table_rows_dead_ratio | dead | percentage |\n| postgres.table_rows_count | live, dead | rows |\n| postgres.table_ops_rows_rate | inserted, deleted, updated | rows/s |\n| postgres.table_ops_rows_hot_ratio | hot | percentage |\n| postgres.table_ops_rows_hot_rate | hot | rows/s |\n| postgres.table_cache_io_ratio | miss | percentage |\n| postgres.table_io_rate | memory, disk | B/s |\n| postgres.table_index_cache_io_ratio | miss | percentage |\n| postgres.table_index_io_rate | memory, disk | B/s |\n| postgres.table_toast_cache_io_ratio | miss | percentage |\n| postgres.table_toast_io_rate | memory, disk | B/s |\n| postgres.table_toast_index_cache_io_ratio | miss | percentage |\n| postgres.table_toast_index_io_rate | memory, disk | B/s |\n| postgres.table_scans_rate | index, sequential | scans/s |\n| postgres.table_scans_rows_rate | index, sequential | rows/s |\n| postgres.table_autovacuum_since_time | time | seconds |\n| postgres.table_vacuum_since_time | time | seconds |\n| postgres.table_autoanalyze_since_time | time | seconds |\n| postgres.table_analyze_since_time | time | seconds |\n| postgres.table_null_columns | null | columns |\n| postgres.table_size | size | B |\n| postgres.table_bloat_size_perc | bloat | percentage |\n| postgres.table_bloat_size | bloat | B |\n\n### Per index\n\nThese metrics refer to the table index.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| database | database name |\n| schema | schema name |\n| table | table name |\n| parent_table | parent table name |\n| index | index name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postgres.index_size | size | B |\n| postgres.index_bloat_size_perc | bloat | percentage |\n| postgres.index_bloat_size | bloat | B |\n| postgres.index_usage_status | used, unused | status |\n\n", "integration_type": "collector", "id": "go.d.plugin-postgres-PostgreSQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/postgres/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "powerdns", "monitored_instance": {"name": "PowerDNS Authoritative Server", "link": "https://doc.powerdns.com/authoritative/", "icon_filename": "powerdns.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["powerdns", "dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# PowerDNS Authoritative Server\n\n## Overview\n\nThis collector monitors PowerDNS Authoritative Server instances.\nIt collects metrics from [the internal webserver](https://doc.powerdns.com/authoritative/http-api/index.html#webserver).\n\nUsed endpoints:\n\n- [`/api/v1/servers/localhost/statistics`](https://doc.powerdns.com/authoritative/http-api/statistics.html)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable webserver\n\nFollow [webserver](https://doc.powerdns.com/authoritative/http-api/index.html#webserver) documentation.\n\n\n#### Enable HTTP API\n\nFollow [HTTP API](https://doc.powerdns.com/authoritative/http-api/index.html#enabling-the-api) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/powerdns.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/powerdns.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n - name: remote\n url: http://203.0.113.0:8081\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `powerdns` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m powerdns\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PowerDNS Authoritative Server instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powerdns.questions_in | udp, tcp | questions/s |\n| powerdns.questions_out | udp, tcp | questions/s |\n| powerdns.cache_usage | query-cache-hit, query-cache-miss, packetcache-hit, packetcache-miss | events/s |\n| powerdns.cache_size | query-cache, packet-cache, key-cache, meta-cache | entries |\n| powerdns.latency | latency | microseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-powerdns-PowerDNS_Authoritative_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/powerdns/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "powerdns_recursor", "monitored_instance": {"name": "PowerDNS Recursor", "link": "https://doc.powerdns.com/recursor/", "icon_filename": "powerdns.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["powerdns", "dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# PowerDNS Recursor\n\n## Overview\n\nThis collector monitors PowerDNS Recursor instances.\n\nIt collects metrics from [the internal webserver](https://doc.powerdns.com/recursor/http-api/index.html#built-in-webserver-and-http-api).\n\nUsed endpoints:\n\n- [`/api/v1/servers/localhost/statistics`](https://doc.powerdns.com/recursor/common/api/endpoint-statistics.html)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable webserver\n\nFollow [webserver](https://doc.powerdns.com/recursor/http-api/index.html#webserver) documentation.\n\n\n#### Enable HTTP API\n\nFollow [HTTP API](https://doc.powerdns.com/recursor/http-api/index.html#enabling-the-api) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/powerdns_recursor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/powerdns_recursor.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n```\n{% /details %}\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8081\n\n - name: remote\n url: http://203.0.113.0:8081\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `powerdns_recursor` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m powerdns_recursor\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per PowerDNS Recursor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powerdns_recursor.questions_in | total, tcp, ipv6 | questions/s |\n| powerdns_recursor.questions_out | udp, tcp, ipv6, throttled | questions/s |\n| powerdns_recursor.answer_time | 0-1ms, 1-10ms, 10-100ms, 100-1000ms, slow | queries/s |\n| powerdns_recursor.timeouts | total, ipv4, ipv6 | timeouts/s |\n| powerdns_recursor.drops | over-capacity-drops, query-pipe-full-drops, too-old-drops, truncated-drops, empty-queries | drops/s |\n| powerdns_recursor.cache_usage | cache-hits, cache-misses, packet-cache-hits, packet-cache-misses | events/s |\n| powerdns_recursor.cache_size | cache, packet-cache, negative-cache | entries |\n\n", "integration_type": "collector", "id": "go.d.plugin-powerdns_recursor-PowerDNS_Recursor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/powerdns_recursor/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "4D Server", "link": "https://github.com/ThomasMaul/Prometheus_4D_Exporter", "icon_filename": "4d_server.png", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# 4D Server\n\n## Overview\n\nMonitor 4D Server performance metrics for efficient application management and optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [4D Server exporter](https://github.com/ThomasMaul/Prometheus_4D_Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [4D Server exporter](https://github.com/ThomasMaul/Prometheus_4D_Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-4D_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "8430FT modem", "link": "https://github.com/dernasherbrezon/8430ft_exporter", "icon_filename": "mtc.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# 8430FT modem\n\n## Overview\n\nKeep track of vital metrics from the MTS 8430FT modem for streamlined network performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [8430FT Exporter](https://github.com/dernasherbrezon/8430ft_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [8430FT Exporter](https://github.com/dernasherbrezon/8430ft_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-8430FT_modem", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "A10 ACOS network devices", "link": "https://github.com/a10networks/PrometheusExporter", "icon_filename": "a10-networks.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# A10 ACOS network devices\n\n## Overview\n\nMonitor A10 Networks device metrics for comprehensive management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [A10-Networks Prometheus Exporter](https://github.com/a10networks/PrometheusExporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [A10-Networks Prometheus Exporter](https://github.com/a10networks/PrometheusExporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-A10_ACOS_network_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AMD CPU & GPU", "link": "https://github.com/amd/amd_smi_exporter", "icon_filename": "amd.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AMD CPU & GPU\n\n## Overview\n\nMonitor AMD System Management Interface performance for optimized hardware management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AMD SMI Exporter](https://github.com/amd/amd_smi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AMD SMI Exporter](https://github.com/amd/amd_smi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AMD_CPU_&_GPU", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "APIcast", "link": "https://github.com/3scale/apicast", "icon_filename": "apicast.png", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# APIcast\n\n## Overview\n\nMonitor APIcast performance metrics to optimize API gateway operations and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [APIcast](https://github.com/3scale/apicast).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [APIcast](https://github.com/3scale/apicast) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-APIcast", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ARM HWCPipe", "link": "https://github.com/ylz-at/arm-hwcpipe-exporter", "icon_filename": "arm.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ARM HWCPipe\n\n## Overview\n\nKeep track of ARM running Android devices and get metrics for efficient performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ARM HWCPipe Exporter](https://github.com/ylz-at/arm-hwcpipe-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ARM HWCPipe Exporter](https://github.com/ylz-at/arm-hwcpipe-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ARM_HWCPipe", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS EC2 Compute instances", "link": "https://github.com/O1ahmad/aws_ec2_exporter", "icon_filename": "aws-ec2.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS EC2 Compute instances\n\n## Overview\n\nTrack AWS EC2 instances key metrics for optimized performance and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS EC2 Exporter](https://github.com/O1ahmad/aws_ec2_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS EC2 Exporter](https://github.com/O1ahmad/aws_ec2_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_EC2_Compute_instances", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS EC2 Spot Instance", "link": "https://github.com/patcadelina/ec2-spot-exporter", "icon_filename": "aws-ec2.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS EC2 Spot Instance\n\n## Overview\n\nMonitor AWS EC2 Spot instances'' performance metrics for efficient resource allocation and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS EC2 Spot Exporter](https://github.com/patcadelina/ec2-spot-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS EC2 Spot Exporter](https://github.com/patcadelina/ec2-spot-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_EC2_Spot_Instance", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS ECS", "link": "https://github.com/bevers222/ecs-exporter", "icon_filename": "amazon-ecs.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS ECS\n\n## Overview\n\nKeep an eye on AWS ECS services and resources for optimized container management and orchestration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS ECS exporter](https://github.com/bevers222/ecs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS ECS exporter](https://github.com/bevers222/ecs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_ECS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS Health events", "link": "https://github.com/vladvasiliu/aws-health-exporter-rs", "icon_filename": "aws.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS Health events\n\n## Overview\n\nTrack AWS service health metrics for proactive incident management and resolution.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS Health Exporter](https://github.com/vladvasiliu/aws-health-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS Health Exporter](https://github.com/vladvasiliu/aws-health-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_Health_events", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS Quota", "link": "https://github.com/emylincon/aws_quota_exporter", "icon_filename": "aws.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS Quota\n\n## Overview\n\nMonitor AWS service quotas for effective resource usage and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [aws_quota_exporter](https://github.com/emylincon/aws_quota_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [aws_quota_exporter](https://github.com/emylincon/aws_quota_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_Quota", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS RDS", "link": "https://github.com/percona/rds_exporter", "icon_filename": "aws-rds.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS RDS\n\n## Overview\n\nMonitor Amazon RDS (Relational Database Service) metrics for efficient cloud database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [rds_exporter](https://github.com/percona/rds_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [rds_exporter](https://github.com/percona/rds_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_RDS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS S3 buckets", "link": "https://github.com/ribbybibby/s3_exporter", "icon_filename": "aws-s3.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS S3 buckets\n\n## Overview\n\nMonitor AWS S3 storage metrics for optimized performance, data management, and cost efficiency.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS S3 Exporter](https://github.com/ribbybibby/s3_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS S3 Exporter](https://github.com/ribbybibby/s3_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_S3_buckets", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS SQS", "link": "https://github.com/jmal98/sqs-exporter", "icon_filename": "aws-sqs.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS SQS\n\n## Overview\n\nTrack AWS SQS messaging metrics for efficient message processing and queue management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS SQS Exporter](https://github.com/jmal98/sqs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS SQS Exporter](https://github.com/jmal98/sqs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_SQS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AWS instance health", "link": "https://github.com/bobtfish/aws-instance-health-exporter", "icon_filename": "aws.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "aws services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AWS instance health\n\n## Overview\n\nMonitor the health of AWS instances for improved performance and availability.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AWS instance health exporter](https://github.com/bobtfish/aws-instance-health-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AWS instance health exporter](https://github.com/bobtfish/aws-instance-health-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AWS_instance_health", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Airthings Waveplus air sensor", "link": "https://github.com/jeremybz/waveplus_exporter", "icon_filename": "airthings.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Airthings Waveplus air sensor\n\n## Overview\n\nTrack Waveplus radon sensor metrics for efficient indoor air quality monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Waveplus Radon Sensor Exporter](https://github.com/jeremybz/waveplus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Waveplus Radon Sensor Exporter](https://github.com/jeremybz/waveplus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Airthings_Waveplus_air_sensor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Akamai Edge DNS Traffic", "link": "https://github.com/akamai/akamai-edgedns-traffic-exporter", "icon_filename": "akamai.svg", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Akamai Edge DNS Traffic\n\n## Overview\n\nTrack and analyze Akamai Edge DNS traffic for enhanced performance and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Akamai Edge DNS Traffic Exporter](https://github.com/akamai/akamai-edgedns-traffic-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Akamai Edge DNS Traffic Exporter](https://github.com/akamai/akamai-edgedns-traffic-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Akamai_Edge_DNS_Traffic", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Akamai Global Traffic Management", "link": "https://github.com/akamai/akamai-gtm-metrics-exporter", "icon_filename": "akamai.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Akamai Global Traffic Management\n\n## Overview\n\nMonitor vital metrics of Akamai Global Traffic Management (GTM) for optimized load balancing and failover.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Akamai Global Traffic Management Metrics Exporter](https://github.com/akamai/akamai-gtm-metrics-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Akamai Global Traffic Management Metrics Exporter](https://github.com/akamai/akamai-gtm-metrics-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Akamai_Global_Traffic_Management", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Akami Cloudmonitor", "link": "https://github.com/ExpressenAB/cloudmonitor_exporter", "icon_filename": "akamai.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Akami Cloudmonitor\n\n## Overview\n\nMonitor Akamai cloudmonitor provider metrics for comprehensive cloud performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloudmonitor exporter](https://github.com/ExpressenAB/cloudmonitor_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloudmonitor exporter](https://github.com/ExpressenAB/cloudmonitor_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Akami_Cloudmonitor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Alamos FE2 server", "link": "https://github.com/codemonauts/prometheus-fe2-exporter", "icon_filename": "alamos_fe2.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Alamos FE2 server\n\n## Overview\n\nKeep tabs on Alamos FE2 systems for improved performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Alamos FE2 Exporter](https://github.com/codemonauts/prometheus-fe2-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Alamos FE2 Exporter](https://github.com/codemonauts/prometheus-fe2-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Alamos_FE2_server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Alibaba Cloud", "link": "https://github.com/aylei/aliyun-exporter", "icon_filename": "alibaba-cloud.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Alibaba Cloud\n\n## Overview\n\nMonitor Alibaba Cloud services and resources for efficient management and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Alibaba Cloud Exporter](https://github.com/aylei/aliyun-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Alibaba Cloud Exporter](https://github.com/aylei/aliyun-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Alibaba_Cloud", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Altaro Backup", "link": "https://github.com/raph2i/altaro_backup_exporter", "icon_filename": "altaro.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Altaro Backup\n\n## Overview\n\nTrack Altaro Backup performance metrics to ensure smooth data protection and recovery operations.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Altaro Backup Exporter](https://github.com/raph2i/altaro_backup_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Altaro Backup Exporter](https://github.com/raph2i/altaro_backup_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Altaro_Backup", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Andrews & Arnold line status", "link": "https://github.com/daveio/aaisp-exporter", "icon_filename": "andrewsarnold.jpg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Andrews & Arnold line status\n\n## Overview\n\nTrack Andrews & Arnold Ltd (AAISP) metrics for improved network performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Andrews & Arnold line status exporter](https://github.com/daveio/aaisp-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Andrews & Arnold line status exporter](https://github.com/daveio/aaisp-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Andrews_&_Arnold_line_status", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Apache Airflow", "link": "https://github.com/shalb/airflow-exporter", "icon_filename": "airflow.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Apache Airflow\n\n## Overview\n\nMonitor Apache Airflow metrics to optimize task scheduling and workflow management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Airflow exporter](https://github.com/shalb/airflow-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Airflow exporter](https://github.com/shalb/airflow-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Apache_Airflow", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Apache Flink", "link": "https://github.com/matsumana/flink_exporter", "icon_filename": "apache_flink.png", "categories": ["data-collection.apm"]}, "keywords": ["web server", "http", "https"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Apache Flink\n\n## Overview\n\nKeep an eye on Apache Flink metrics for efficient stream processing and application management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Apache Flink Metrics Reporter](https://github.com/matsumana/flink_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Apache Flink Metrics Reporter](https://github.com/matsumana/flink_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Apache_Flink", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Apple Time Machine", "link": "https://github.com/znerol/prometheus-timemachine-exporter", "icon_filename": "apple.svg", "categories": ["data-collection.macos-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Apple Time Machine\n\n## Overview\n\nTrack Apple Time Machine backup metrics for efficient data protection and recovery.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Apple Time Machine Exporter](https://github.com/znerol/prometheus-timemachine-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Apple Time Machine Exporter](https://github.com/znerol/prometheus-timemachine-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Apple_Time_Machine", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Aruba devices", "link": "https://github.com/slashdoom/aruba_exporter", "icon_filename": "aruba.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "aruba devices"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Aruba devices\n\n## Overview\n\nMonitor Aruba Networks devices performance metrics for comprehensive network management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Aruba Exporter](https://github.com/slashdoom/aruba_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Aruba Exporter](https://github.com/slashdoom/aruba_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Aruba_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ArvanCloud CDN", "link": "https://github.com/arvancloud/ar-prometheus-exporter", "icon_filename": "arvancloud.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ArvanCloud CDN\n\n## Overview\n\nTrack and analyze ArvanCloud CDN and cloud services performance metrics for optimized delivery and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ArvanCloud exporter](https://github.com/arvancloud/ar-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ArvanCloud exporter](https://github.com/arvancloud/ar-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ArvanCloud_CDN", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Audisto", "link": "https://github.com/ZeitOnline/audisto_exporter", "icon_filename": "audisto.svg", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Audisto\n\n## Overview\n\nMonitor Audisto SEO and website metrics for improved search performance and optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Audisto exporter](https://github.com/ZeitOnline/audisto_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Audisto exporter](https://github.com/ZeitOnline/audisto_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Audisto", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "AuthLog", "link": "https://github.com/woblerr/authlog_exporter", "icon_filename": "linux.png", "categories": ["data-collection.logs-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# AuthLog\n\n## Overview\n\nMonitor authentication logs for security insights and efficient access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [AuthLog Exporter](https://github.com/woblerr/authlog_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [AuthLog Exporter](https://github.com/woblerr/authlog_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-AuthLog", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure AD App passwords", "link": "https://github.com/vladvasiliu/azure-app-secrets-monitor", "icon_filename": "azure.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "azure services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure AD App passwords\n\n## Overview\n\nSafeguard and track Azure App secrets for enhanced security and access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure App Secrets monitor](https://github.com/vladvasiliu/azure-app-secrets-monitor).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure App Secrets monitor](https://github.com/vladvasiliu/azure-app-secrets-monitor) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_AD_App_passwords", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure Elastic Pool SQL", "link": "https://github.com/benclapp/azure_elastic_sql_exporter", "icon_filename": "azure-elastic-sql.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["database", "relational db", "data querying"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure Elastic Pool SQL\n\n## Overview\n\nMonitor Azure Elastic SQL performance metrics for efficient database management and query optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Elastic SQL Exporter](https://github.com/benclapp/azure_elastic_sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Elastic SQL Exporter](https://github.com/benclapp/azure_elastic_sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_Elastic_Pool_SQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure Resources", "link": "https://github.com/FXinnovation/azure-resources-exporter", "icon_filename": "azure.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "azure services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure Resources\n\n## Overview\n\nKeep tabs on Azure resources vital metrics for efficient cloud management and cost optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Resources Exporter](https://github.com/FXinnovation/azure-resources-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Resources Exporter](https://github.com/FXinnovation/azure-resources-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_Resources", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure SQL", "link": "https://github.com/iamseth/azure_sql_exporter", "icon_filename": "azure-sql.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["database", "relational db", "data querying"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure SQL\n\n## Overview\n\nTrack Azure SQL performance metrics for efficient database management and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure SQL exporter](https://github.com/iamseth/azure_sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure SQL exporter](https://github.com/iamseth/azure_sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_SQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure Service Bus", "link": "https://github.com/marcinbudny/servicebus_exporter", "icon_filename": "azure-service-bus.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "azure services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure Service Bus\n\n## Overview\n\nMonitor Azure Service Bus messaging metrics for optimized communication and integration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Service Bus Exporter](https://github.com/marcinbudny/servicebus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Service Bus Exporter](https://github.com/marcinbudny/servicebus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_Service_Bus", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Azure application", "link": "https://github.com/RobustPerception/azure_metrics_exporter", "icon_filename": "azure.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "azure services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Azure application\n\n## Overview\n\nTrack Azure Monitor metrics for comprehensive resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Azure Monitor exporter](https://github.com/RobustPerception/azure_metrics_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Azure Monitor exporter](https://github.com/RobustPerception/azure_metrics_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Azure_application", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "BOSH", "link": "https://github.com/bosh-prometheus/bosh_exporter", "icon_filename": "bosh.png", "categories": ["data-collection.provisioning-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# BOSH\n\n## Overview\n\nKeep an eye on BOSH deployment metrics for improved cloud orchestration and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BOSH exporter](https://github.com/bosh-prometheus/bosh_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BOSH exporter](https://github.com/bosh-prometheus/bosh_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-BOSH", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "BigQuery", "link": "https://github.com/m-lab/prometheus-bigquery-exporter", "icon_filename": "bigquery.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# BigQuery\n\n## Overview\n\nMonitor Google BigQuery metrics for optimized data processing and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BigQuery Exporter](https://github.com/m-lab/prometheus-bigquery-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BigQuery Exporter](https://github.com/m-lab/prometheus-bigquery-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-BigQuery", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Bird Routing Daemon", "link": "https://github.com/czerwonk/bird_exporter", "icon_filename": "bird.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Bird Routing Daemon\n\n## Overview\n\nKeep an eye on Bird Routing Daemon metrics for optimized network routing and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Bird Routing Daemon Exporter](https://github.com/czerwonk/bird_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Bird Routing Daemon Exporter](https://github.com/czerwonk/bird_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Bird_Routing_Daemon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Blackbox", "link": "https://github.com/prometheus/blackbox_exporter", "icon_filename": "prometheus.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": ["blackbox"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Blackbox\n\n## Overview\n\nTrack external service availability and response times with Blackbox monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Blackbox exporter](https://github.com/prometheus/blackbox_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Blackbox exporter](https://github.com/prometheus/blackbox_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Blackbox", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Bobcat Miner 300", "link": "https://github.com/pperzyna/bobcat_exporter", "icon_filename": "bobcat.jpg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Bobcat Miner 300\n\n## Overview\n\nMonitor Bobcat equipment metrics for optimized performance and maintenance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Bobcat Exporter](https://github.com/pperzyna/bobcat_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Bobcat Exporter](https://github.com/pperzyna/bobcat_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Bobcat_Miner_300", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Borg backup", "link": "https://github.com/k0ral/borg-exporter", "icon_filename": "borg.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Borg backup\n\n## Overview\n\nTrack Borg backup performance metrics for efficient data protection and recovery.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Borg backup exporter](https://github.com/k0ral/borg-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Borg backup exporter](https://github.com/k0ral/borg-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Borg_backup", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "BungeeCord", "link": "https://github.com/weihao/bungeecord-prometheus-exporter", "icon_filename": "bungee.png", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# BungeeCord\n\n## Overview\n\nTrack BungeeCord proxy server metrics for efficient load balancing and performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [BungeeCord Prometheus Exporter](https://github.com/weihao/bungeecord-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [BungeeCord Prometheus Exporter](https://github.com/weihao/bungeecord-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-BungeeCord", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "CS:GO", "link": "https://github.com/kinduff/csgo_exporter", "icon_filename": "csgo.svg", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# CS:GO\n\n## Overview\n\nMonitor Counter-Strike: Global Offensive server metrics for improved game performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CS:GO Exporter](https://github.com/kinduff/csgo_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CS:GO Exporter](https://github.com/kinduff/csgo_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-CS:GO", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "CVMFS clients", "link": "https://github.com/guilbaults/cvmfs-exporter", "icon_filename": "cvmfs.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# CVMFS clients\n\n## Overview\n\nTrack CernVM File System metrics for optimized distributed file system performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CVMFS exporter](https://github.com/guilbaults/cvmfs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CVMFS exporter](https://github.com/guilbaults/cvmfs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-CVMFS_clients", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Celery", "link": "https://github.com/ZeitOnline/celery_redis_prometheus", "icon_filename": "celery.png", "categories": ["data-collection.task-queues"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Celery\n\n## Overview\n\nKeep an eye on Celery task queue metrics for optimized task processing and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Celery Exporter](https://github.com/ZeitOnline/celery_redis_prometheus).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Celery Exporter](https://github.com/ZeitOnline/celery_redis_prometheus) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Celery", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Certificate Transparency", "link": "https://github.com/Hsn723/ct-exporter", "icon_filename": "ct.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Certificate Transparency\n\n## Overview\n\nTrack certificate transparency log metrics for enhanced\nSSL/TLS certificate management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ct-exporter](https://github.com/Hsn723/ct-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ct-exporter](https://github.com/Hsn723/ct-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Certificate_Transparency", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Checkpoint device", "link": "https://github.com/RespiroConsulting/CheckPointExporter", "icon_filename": "checkpoint.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Checkpoint device\n\n## Overview\n\nTrack Check Point firewall and security metrics for enhanced network protection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Checkpoint exporter](https://github.com/RespiroConsulting/CheckPointExporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Checkpoint exporter](https://github.com/RespiroConsulting/CheckPointExporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Checkpoint_device", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Chia", "link": "https://github.com/chia-network/chia-exporter", "icon_filename": "chia.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Chia\n\n## Overview\n\nTrack Chia blockchain metrics for optimized farming and resource allocation.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Chia Exporter](https://github.com/chia-network/chia-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Chia Exporter](https://github.com/chia-network/chia-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Chia", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Christ Elektronik CLM5IP power panel", "link": "https://github.com/christmann/clm5ip_exporter/", "icon_filename": "christelec.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Christ Elektronik CLM5IP power panel\n\n## Overview\n\nMonitor Christ Elektronik CLM5IP device metrics for efficient performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Christ Elektronik CLM5IP Exporter](https://github.com/christmann/clm5ip_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Christ Elektronik CLM5IP Exporter](https://github.com/christmann/clm5ip_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Christ_Elektronik_CLM5IP_power_panel", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cilium Agent", "link": "https://github.com/cilium/cilium", "icon_filename": "cilium.png", "categories": ["data-collection.kubernetes"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cilium Agent\n\n## Overview\n\nKeep an eye on Cilium Agent metrics for optimized network security and connectivity.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Agent](https://github.com/cilium/cilium).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Agent](https://github.com/cilium/cilium) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cilium_Agent", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cilium Operator", "link": "https://github.com/cilium/cilium", "icon_filename": "cilium.png", "categories": ["data-collection.kubernetes"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cilium Operator\n\n## Overview\n\nMonitor Cilium Operator metrics for efficient Kubernetes network security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Operator](https://github.com/cilium/cilium).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Operator](https://github.com/cilium/cilium) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cilium_Operator", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cilium Proxy", "link": "https://github.com/cilium/proxy", "icon_filename": "cilium.png", "categories": ["data-collection.kubernetes"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cilium Proxy\n\n## Overview\n\nTrack Cilium Proxy metrics for enhanced network security and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cilium Proxy](https://github.com/cilium/proxy).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cilium Proxy](https://github.com/cilium/proxy) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cilium_Proxy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cisco ACI", "link": "https://github.com/RavuAlHemio/prometheus_aci_exporter", "icon_filename": "cisco.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "cisco devices"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cisco ACI\n\n## Overview\n\nMonitor Cisco ACI infrastructure metrics for optimized network performance and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cisco ACI Exporter](https://github.com/RavuAlHemio/prometheus_aci_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cisco ACI Exporter](https://github.com/RavuAlHemio/prometheus_aci_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cisco_ACI", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Citrix NetScaler", "link": "https://github.com/rokett/Citrix-NetScaler-Exporter", "icon_filename": "citrix.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Citrix NetScaler\n\n## Overview\n\nKeep tabs on NetScaler performance metrics for efficient application delivery and load balancing.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Citrix NetScaler Exporter](https://github.com/rokett/Citrix-NetScaler-Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Citrix NetScaler Exporter](https://github.com/rokett/Citrix-NetScaler-Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Citrix_NetScaler", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ClamAV daemon", "link": "https://github.com/sergeymakinen/clamav_exporter", "icon_filename": "clamav.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ClamAV daemon\n\n## Overview\n\nTrack ClamAV antivirus metrics for enhanced threat detection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ClamAV daemon stats exporter](https://github.com/sergeymakinen/clamav_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ClamAV daemon stats exporter](https://github.com/sergeymakinen/clamav_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ClamAV_daemon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Clamscan results", "link": "https://github.com/FortnoxAB/clamscan-exporter", "icon_filename": "clamav.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Clamscan results\n\n## Overview\n\nMonitor ClamAV scanning performance metrics for efficient malware detection and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [clamscan-exporter](https://github.com/FortnoxAB/clamscan-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [clamscan-exporter](https://github.com/FortnoxAB/clamscan-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Clamscan_results", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Clash", "link": "https://github.com/elonzh/clash_exporter", "icon_filename": "clash.png", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Clash\n\n## Overview\n\nKeep an eye on Clash proxy server metrics for optimized network performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Clash exporter](https://github.com/elonzh/clash_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Clash exporter](https://github.com/elonzh/clash_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Clash", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ClickHouse", "link": "https://github.com/ClickHouse/ClickHouse", "icon_filename": "clickhouse.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ClickHouse\n\n## Overview\n\nMonitor ClickHouse database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to the ClickHouse built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#server_configuration_parameters-prometheus).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ClickHouse", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "CloudWatch", "link": "https://github.com/prometheus/cloudwatch_exporter", "icon_filename": "aws-cloudwatch.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# CloudWatch\n\n## Overview\n\nMonitor AWS CloudWatch metrics for comprehensive AWS resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CloudWatch exporter](https://github.com/prometheus/cloudwatch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CloudWatch exporter](https://github.com/prometheus/cloudwatch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-CloudWatch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cloud Foundry", "link": "https://github.com/bosh-prometheus/cf_exporter", "icon_filename": "cloud-foundry.svg", "categories": ["data-collection.provisioning-systems"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cloud Foundry\n\n## Overview\n\nTrack Cloud Foundry platform metrics for optimized application deployment and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloud Foundry exporter](https://github.com/bosh-prometheus/cf_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloud Foundry exporter](https://github.com/bosh-prometheus/cf_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cloud_Foundry", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cloud Foundry Firehose", "link": "https://github.com/bosh-prometheus/firehose_exporter", "icon_filename": "cloud-foundry.svg", "categories": ["data-collection.provisioning-systems"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cloud Foundry Firehose\n\n## Overview\n\nMonitor Cloud Foundry Firehose metrics for comprehensive platform diagnostics and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloud Foundry Firehose exporter](https://github.com/bosh-prometheus/firehose_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloud Foundry Firehose exporter](https://github.com/bosh-prometheus/firehose_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cloud_Foundry_Firehose", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cloudflare PCAP", "link": "https://github.com/wehkamp/docker-prometheus-cloudflare-exporter", "icon_filename": "cloudflare.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cloudflare PCAP\n\n## Overview\n\nKeep tabs on Cloudflare CDN and security metrics for optimized content delivery and protection.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cloudflare exporter](https://github.com/wehkamp/docker-prometheus-cloudflare-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cloudflare exporter](https://github.com/wehkamp/docker-prometheus-cloudflare-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cloudflare_PCAP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ClusterControl CMON", "link": "https://github.com/severalnines/cmon_exporter", "icon_filename": "cluster-control.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ClusterControl CMON\n\n## Overview\n\nTrack CMON metrics for Severalnines Cluster Control for efficient monitoring and management of database operations.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CMON Exporter](https://github.com/severalnines/cmon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CMON Exporter](https://github.com/severalnines/cmon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ClusterControl_CMON", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Collectd", "link": "https://github.com/prometheus/collectd_exporter", "icon_filename": "collectd.png", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Collectd\n\n## Overview\n\nMonitor system and application metrics with Collectd for comprehensive performance analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Collectd exporter](https://github.com/prometheus/collectd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Collectd exporter](https://github.com/prometheus/collectd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Collectd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Concourse", "link": "https://concourse-ci.org", "icon_filename": "concourse.png", "categories": ["data-collection.ci-cd-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Concourse\n\n## Overview\n\nMonitor Concourse CI/CD pipeline metrics for optimized workflow management and deployment.\n\n\nMetrics are gathered by periodically sending HTTP requests to the Concourse built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://concourse-ci.org/metrics.html#configuring-metrics).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Concourse", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "CraftBeerPi", "link": "https://github.com/jo-hannes/craftbeerpi_exporter", "icon_filename": "craftbeer.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# CraftBeerPi\n\n## Overview\n\nKeep an eye on CraftBeerPi homebrewing metrics for optimized brewing process management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [CraftBeerPi exporter](https://github.com/jo-hannes/craftbeerpi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [CraftBeerPi exporter](https://github.com/jo-hannes/craftbeerpi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-CraftBeerPi", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Crowdsec", "link": "https://docs.crowdsec.net/docs/observability/prometheus", "icon_filename": "crowdsec.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Crowdsec\n\n## Overview\n\nMonitor Crowdsec security metrics for efficient threat detection and response.\n\n\nMetrics are gathered by periodically sending HTTP requests to the Crowdsec build-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.crowdsec.net/docs/observability/prometheus/).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Crowdsec", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Crypto exchanges", "link": "https://github.com/ix-ai/crypto-exporter", "icon_filename": "crypto.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Crypto exchanges\n\n## Overview\n\nTrack cryptocurrency market metrics for informed investment and trading decisions.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Crypto exporter](https://github.com/ix-ai/crypto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Crypto exporter](https://github.com/ix-ai/crypto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Crypto_exchanges", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Cryptowatch", "link": "https://github.com/nbarrientos/cryptowat_exporter", "icon_filename": "cryptowatch.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Cryptowatch\n\n## Overview\n\nKeep tabs on Cryptowatch market data metrics for comprehensive cryptocurrency market analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cryptowat Exporter](https://github.com/nbarrientos/cryptowat_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cryptowat Exporter](https://github.com/nbarrientos/cryptowat_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Cryptowatch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Custom Exporter", "link": "https://github.com/orange-cloudfoundry/custom_exporter", "icon_filename": "customdata.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Custom Exporter\n\n## Overview\n\nCreate and monitor custom metrics tailored to your specific use case and requirements.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Custom Exporter](https://github.com/orange-cloudfoundry/custom_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Custom Exporter](https://github.com/orange-cloudfoundry/custom_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Custom_Exporter", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "DDWRT Routers", "link": "https://github.com/camelusferus/ddwrt_collector", "icon_filename": "ddwrt.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# DDWRT Routers\n\n## Overview\n\nKeep tabs on DD-WRT router metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ddwrt-collector](https://github.com/camelusferus/ddwrt_collector).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ddwrt-collector](https://github.com/camelusferus/ddwrt_collector) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-DDWRT_Routers", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "DMARC", "link": "https://github.com/jgosmann/dmarc-metrics-exporter", "icon_filename": "dmarc.png", "categories": ["data-collection.mail-servers"]}, "keywords": ["email authentication", "policy", "reporting"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# DMARC\n\n## Overview\n\nTrack DMARC email authentication metrics for improved email security and deliverability.\n\n\nMetrics are gathered by periodically sending HTTP requests to [dmarc-metrics-exporter](https://github.com/jgosmann/dmarc-metrics-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [dmarc-metrics-exporter](https://github.com/jgosmann/dmarc-metrics-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-DMARC", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "DNSBL", "link": "https://github.com/Luzilla/dnsbl_exporter/", "icon_filename": "dnsbl.png", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# DNSBL\n\n## Overview\n\nMonitor DNSBL metrics for efficient domain reputation and security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [dnsbl-exporter](https://github.com/Luzilla/dnsbl_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [dnsbl-exporter](https://github.com/Luzilla/dnsbl_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-DNSBL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dell EMC ECS cluster", "link": "https://github.com/paychex/prometheus-emcecs-exporter", "icon_filename": "dell.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dell EMC ECS cluster\n\n## Overview\n\nMonitor Dell EMC ECS object storage metrics for optimized storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell EMC ECS Exporter](https://github.com/paychex/prometheus-emcecs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell EMC ECS Exporter](https://github.com/paychex/prometheus-emcecs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dell_EMC_ECS_cluster", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dell EMC Isilon cluster", "link": "https://github.com/paychex/prometheus-isilon-exporter", "icon_filename": "dell.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dell EMC Isilon cluster\n\n## Overview\n\nTrack Dell EMC Isilon scale-out NAS metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell EMC Isilon Exporter](https://github.com/paychex/prometheus-isilon-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell EMC Isilon Exporter](https://github.com/paychex/prometheus-isilon-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dell_EMC_Isilon_cluster", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dell EMC XtremIO cluster", "link": "https://github.com/cthiel42/prometheus-xtremio-exporter", "icon_filename": "dell.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dell EMC XtremIO cluster\n\n## Overview\n\nKeep an eye on Dell/EMC XtremIO storage metrics for optimized data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dell/EMC XtremIO Exporter](https://github.com/cthiel42/prometheus-xtremio-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dell/EMC XtremIO Exporter](https://github.com/cthiel42/prometheus-xtremio-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dell_EMC_XtremIO_cluster", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dell PowerMax", "link": "https://github.com/kckecheng/powermax_exporter", "icon_filename": "powermax.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dell PowerMax\n\n## Overview\n\nMonitor Dell EMC PowerMax storage array metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [PowerMax Exporter](https://github.com/kckecheng/powermax_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [PowerMax Exporter](https://github.com/kckecheng/powermax_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dell_PowerMax", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dependency-Track", "link": "https://github.com/jetstack/dependency-track-exporter", "icon_filename": "dependency-track.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dependency-Track\n\n## Overview\n\nMonitor Dependency-Track metrics for efficient vulnerability management and software supply chain analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dependency-Track Exporter](https://github.com/jetstack/dependency-track-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dependency-Track Exporter](https://github.com/jetstack/dependency-track-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dependency-Track", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "DigitalOcean", "link": "https://github.com/metalmatze/digitalocean_exporter", "icon_filename": "digitalocean.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# DigitalOcean\n\n## Overview\n\nTrack DigitalOcean cloud provider metrics for optimized resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [DigitalOcean Exporter](https://github.com/metalmatze/digitalocean_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [DigitalOcean Exporter](https://github.com/metalmatze/digitalocean_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-DigitalOcean", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Discourse", "link": "https://github.com/discourse/discourse-prometheus", "icon_filename": "discourse.svg", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Discourse\n\n## Overview\n\nMonitor Discourse forum metrics for efficient community management and engagement.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Discourse Exporter](https://github.com/discourse/discourse-prometheus).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Discourse Exporter](https://github.com/discourse/discourse-prometheus) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Discourse", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dutch Electricity Smart Meter", "link": "https://github.com/TobiasDeBruijn/prometheus-p1-exporter", "icon_filename": "dutch-electricity.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dutch Electricity Smart Meter\n\n## Overview\n\nKeep tabs on Dutch smart meter P1 port metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [P1Exporter - Dutch Electricity Smart Meter Exporter](https://github.com/TobiasDeBruijn/prometheus-p1-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [P1Exporter - Dutch Electricity Smart Meter Exporter](https://github.com/TobiasDeBruijn/prometheus-p1-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dutch_Electricity_Smart_Meter", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Dynatrace", "link": "https://github.com/Apside-TOP/dynatrace_exporter", "icon_filename": "dynatrace.svg", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Dynatrace\n\n## Overview\n\nMonitor Dynatrace APM metrics for comprehensive application performance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Dynatrace Exporter](https://github.com/Apside-TOP/dynatrace_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Dynatrace Exporter](https://github.com/Apside-TOP/dynatrace_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Dynatrace", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "EOS", "link": "https://eos-web.web.cern.ch/eos-web/", "icon_filename": "eos.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# EOS\n\n## Overview\n\nMonitor CERN EOS metrics for efficient storage management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [EOS exporter](https://github.com/cern-eos/eos_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [EOS exporter](https://github.com/cern-eos/eos_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-EOS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Eaton UPS", "link": "https://github.com/psyinfra/prometheus-eaton-ups-exporter", "icon_filename": "eaton.svg", "categories": ["data-collection.ups"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Eaton UPS\n\n## Overview\n\nMonitor Eaton uninterruptible power supply (UPS) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Prometheus Eaton UPS Exporter](https://github.com/psyinfra/prometheus-eaton-ups-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Prometheus Eaton UPS Exporter](https://github.com/psyinfra/prometheus-eaton-ups-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Eaton_UPS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Elgato Key Light devices.", "link": "https://github.com/mdlayher/keylight_exporter", "icon_filename": "elgato.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Elgato Key Light devices.\n\n## Overview\n\nKeep tabs on Elgato Key Light metrics for optimized lighting control and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Elgato Key Light exporter](https://github.com/mdlayher/keylight_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Elgato Key Light exporter](https://github.com/mdlayher/keylight_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Elgato_Key_Light_devices.", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Energomera smart power meters", "link": "https://github.com/peak-load/energomera_exporter", "icon_filename": "energomera.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Energomera smart power meters\n\n## Overview\n\nTrack Energomera electricity meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Energomera electricity meter exporter](https://github.com/peak-load/energomera_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [energomera-exporter Energomera electricity meter exporter](https://github.com/peak-load/energomera_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Energomera_smart_power_meters", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Excel spreadsheet", "link": "https://github.com/MarcusCalidus/excel-exporter", "icon_filename": "excel.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Excel spreadsheet\n\n## Overview\n\nExport Prometheus metrics to Excel for versatile data analysis and reporting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Excel Exporter](https://github.com/MarcusCalidus/excel-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Excel Exporter](https://github.com/MarcusCalidus/excel-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Excel_spreadsheet", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "FRRouting", "link": "https://github.com/tynany/frr_exporter", "icon_filename": "frrouting.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# FRRouting\n\n## Overview\n\nMonitor Free Range Routing (FRR) metrics for optimized network routing and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FRRouting Exporter](https://github.com/tynany/frr_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FRRouting Exporter](https://github.com/tynany/frr_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-FRRouting", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Fastd", "link": "https://github.com/freifunk-darmstadt/fastd-exporter", "icon_filename": "fastd.png", "categories": ["data-collection.vpns"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Fastd\n\n## Overview\n\nMonitor Fastd VPN metrics for efficient virtual private network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Fastd Exporter](https://github.com/freifunk-darmstadt/fastd-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Fastd Exporter](https://github.com/freifunk-darmstadt/fastd-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Fastd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Fortigate firewall", "link": "https://github.com/bluecmd/fortigate_exporter", "icon_filename": "fortinet.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Fortigate firewall\n\n## Overview\n\nKeep tabs on Fortigate firewall metrics for enhanced network protection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [fortigate_exporter](https://github.com/bluecmd/fortigate_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [fortigate_exporter](https://github.com/bluecmd/fortigate_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Fortigate_firewall", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "FreeBSD NFS", "link": "https://github.com/Axcient/freebsd-nfs-exporter", "icon_filename": "freebsd.svg", "categories": ["data-collection.freebsd"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# FreeBSD NFS\n\n## Overview\n\nMonitor FreeBSD Network File System metrics for efficient file sharing management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FreeBSD NFS Exporter](https://github.com/Axcient/freebsd-nfs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FreeBSD NFS Exporter](https://github.com/Axcient/freebsd-nfs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-FreeBSD_NFS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "FreeBSD RCTL/RACCT", "link": "https://github.com/yo000/rctl_exporter", "icon_filename": "freebsd.svg", "categories": ["data-collection.freebsd"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# FreeBSD RCTL/RACCT\n\n## Overview\n\nKeep an eye on FreeBSD Resource Container metrics for optimized resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [FreeBSD RCTL Exporter](https://github.com/yo000/rctl_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [FreeBSD RCTL Exporter](https://github.com/yo000/rctl_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-FreeBSD_RCTL/RACCT", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Freifunk network", "link": "https://github.com/xperimental/freifunk-exporter", "icon_filename": "freifunk.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Freifunk network\n\n## Overview\n\nKeep tabs on Freifunk community network metrics for optimized network performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Freifunk Exporter](https://github.com/xperimental/freifunk-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Freifunk Exporter](https://github.com/xperimental/freifunk-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Freifunk_network", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Fritzbox network devices", "link": "https://github.com/pdreker/fritz_exporter", "icon_filename": "avm.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Fritzbox network devices\n\n## Overview\n\nTrack AVM Fritzbox router metrics for efficient home network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Fritzbox exporter](https://github.com/pdreker/fritz_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Fritzbox exporter](https://github.com/pdreker/fritz_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Fritzbox_network_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GCP GCE", "link": "https://github.com/O1ahmad/gcp-gce-exporter", "icon_filename": "gcp-gce.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GCP GCE\n\n## Overview\n\nKeep an eye on Google Cloud Platform Compute Engine metrics for efficient cloud resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GCP GCE Exporter](https://github.com/O1ahmad/gcp-gce-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GCP GCE Exporter](https://github.com/O1ahmad/gcp-gce-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GCP_GCE", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GCP Quota", "link": "https://github.com/mintel/gcp-quota-exporter", "icon_filename": "gcp.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GCP Quota\n\n## Overview\n\nMonitor Google Cloud Platform quota metrics for optimized resource usage and cost management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GCP Quota Exporter](https://github.com/mintel/gcp-quota-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GCP Quota Exporter](https://github.com/mintel/gcp-quota-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GCP_Quota", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GTP", "link": "https://github.com/wmnsk/gtp_exporter", "icon_filename": "gtpu.png", "categories": ["data-collection.telephony-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GTP\n\n## Overview\n\nKeep an eye on GTP (GPRS Tunneling Protocol) metrics for optimized mobile data communication and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GTP Exporter](https://github.com/wmnsk/gtp_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GTP Exporter](https://github.com/wmnsk/gtp_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GTP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Generic Command Line Output", "link": "https://github.com/MarioMartReq/generic-exporter", "icon_filename": "cli.svg", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Generic Command Line Output\n\n## Overview\n\nTrack custom command line output metrics for tailored monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Generic Command Line Output Exporter](https://github.com/MarioMartReq/generic-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Generic Command Line Output Exporter](https://github.com/MarioMartReq/generic-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Generic_Command_Line_Output", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Generic storage enclosure tool", "link": "https://github.com/Gandi/jbod-rs", "icon_filename": "storage-enclosure.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Generic storage enclosure tool\n\n## Overview\n\nMonitor storage enclosure metrics for efficient storage device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [jbod - Generic storage enclosure tool](https://github.com/Gandi/jbod-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [jbod - Generic storage enclosure tool](https://github.com/Gandi/jbod-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Generic_storage_enclosure_tool", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GitHub API rate limit", "link": "https://github.com/lunarway/github-ratelimit-exporter", "icon_filename": "github.svg", "categories": ["data-collection.other"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GitHub API rate limit\n\n## Overview\n\nMonitor GitHub API rate limit metrics for efficient\nAPI usage and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GitHub API rate limit Exporter](https://github.com/lunarway/github-ratelimit-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GitHub API rate limit Exporter](https://github.com/lunarway/github-ratelimit-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GitHub_API_rate_limit", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GitHub repository", "link": "https://github.com/githubexporter/github-exporter", "icon_filename": "github.svg", "categories": ["data-collection.other"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GitHub repository\n\n## Overview\n\nTrack GitHub repository metrics for optimized project and user analytics monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [GitHub Exporter](https://github.com/githubexporter/github-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [GitHub Exporter](https://github.com/githubexporter/github-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GitHub_repository", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "GitLab Runner", "link": "https://gitlab.com/gitlab-org/gitlab-runner", "icon_filename": "gitlab.png", "categories": ["data-collection.ci-cd-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# GitLab Runner\n\n## Overview\n\nKeep an eye on GitLab CI/CD job metrics for efficient development and deployment management.\n\n\nMetrics are gathered by periodically sending HTTP requests to GitLab built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.gitlab.com/runner/monitoring/#configuration-of-the-metrics-http-server).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-GitLab_Runner", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Gobetween", "link": "https://github.com/yyyar/gobetween", "icon_filename": "gobetween.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Gobetween\n\n## Overview\n\nTrack Gobetween load balancer metrics for optimized network traffic management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to Gobetween built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Gobetween", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Google Cloud Platform", "link": "https://github.com/DazWilkin/gcp-exporter", "icon_filename": "gcp.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Google Cloud Platform\n\n## Overview\n\nMonitor Google Cloud Platform metrics for comprehensive cloud resource management and performance optimization.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Google Cloud Platform Exporter](https://github.com/DazWilkin/gcp-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Google Cloud Platform Exporter](https://github.com/DazWilkin/gcp-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Google_Cloud_Platform", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Google Pagespeed", "link": "https://github.com/foomo/pagespeed_exporter", "icon_filename": "google.svg", "categories": ["data-collection.apm"]}, "keywords": ["cloud services", "cloud computing", "google cloud services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Google Pagespeed\n\n## Overview\n\nKeep an eye on Google PageSpeed Insights performance metrics for efficient web page optimization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pagespeed exporter](https://github.com/foomo/pagespeed_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pagespeed exporter](https://github.com/foomo/pagespeed_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Google_Pagespeed", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Google Stackdriver", "link": "https://github.com/prometheus-community/stackdriver_exporter", "icon_filename": "gcp-stackdriver.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "google cloud services"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Google Stackdriver\n\n## Overview\n\nTrack Google Stackdriver monitoring metrics for optimized cloud performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Google Stackdriver exporter](https://github.com/prometheus-community/stackdriver_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Google Stackdriver exporter](https://github.com/prometheus-community/stackdriver_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Google_Stackdriver", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Grafana", "link": "https://grafana.com/", "icon_filename": "grafana.png", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Grafana\n\n## Overview\n\nKeep tabs on Grafana dashboard and visualization metrics for optimized monitoring and data analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to Grafana built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Grafana", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Graylog Server", "link": "https://github.com/Graylog2/graylog2-server/", "icon_filename": "graylog.svg", "categories": ["data-collection.logs-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Graylog Server\n\n## Overview\n\nMonitor Graylog server metrics for efficient log management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to Graylog built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://go2docs.graylog.org/5-0/interacting_with_your_log_data/metrics.html#PrometheusMetricExporting).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Graylog_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "HANA", "link": "https://github.com/jenningsloy318/hana_exporter", "icon_filename": "sap.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# HANA\n\n## Overview\n\nTrack SAP HANA database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HANA Exporter](https://github.com/jenningsloy318/hana_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HANA Exporter](https://github.com/jenningsloy318/hana_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-HANA", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "HDSentinel", "link": "https://github.com/qusielle/hdsentinel-exporter", "icon_filename": "harddisk.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# HDSentinel\n\n## Overview\n\nMonitor Hard Disk Sentinel metrics for efficient storage device health management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HDSentinel Exporter](https://github.com/qusielle/hdsentinel-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HDSentinel Exporter](https://github.com/qusielle/hdsentinel-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-HDSentinel", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "HHVM", "link": "https://github.com/wikimedia/operations-software-hhvm_exporter", "icon_filename": "hhvm.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# HHVM\n\n## Overview\n\nMonitor HipHop Virtual Machine metrics for efficient\nPHP execution and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HHVM Exporter](https://github.com/wikimedia/operations-software-hhvm_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HHVM Exporter](https://github.com/wikimedia/operations-software-hhvm_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-HHVM", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "HP iLO", "link": "https://github.com/infinityworks/hpilo-exporter", "icon_filename": "hp.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# HP iLO\n\n## Overview\n\nMonitor HP Integrated Lights Out (iLO) metrics for efficient server management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [HP iLO Metrics Exporter](https://github.com/infinityworks/hpilo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [HP iLO Metrics Exporter](https://github.com/infinityworks/hpilo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-HP_iLO", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Halon", "link": "https://github.com/tobiasbp/halon_exporter", "icon_filename": "halon.svg", "categories": ["data-collection.mail-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Halon\n\n## Overview\n\nMonitor Halon email security and delivery metrics for optimized email management and protection.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Halon exporter](https://github.com/tobiasbp/halon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Halon exporter](https://github.com/tobiasbp/halon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Halon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "HashiCorp Vault secrets", "link": "https://github.com/tomtom-international/vault-assessment-prometheus-exporter", "icon_filename": "vault.svg", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# HashiCorp Vault secrets\n\n## Overview\n\nTrack HashiCorp Vault security assessment metrics for efficient secrets management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Vault Assessment Prometheus Exporter](https://github.com/tomtom-international/vault-assessment-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Vault Assessment Prometheus Exporter](https://github.com/tomtom-international/vault-assessment-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-HashiCorp_Vault_secrets", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Hasura GraphQL Server", "link": "https://github.com/zolamk/hasura-exporter", "icon_filename": "hasura.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Hasura GraphQL Server\n\n## Overview\n\nKeep tabs on Hasura GraphQL engine metrics for optimized\nAPI performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hasura Exporter](https://github.com/zolamk/hasura-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hasura Exporter](https://github.com/zolamk/hasura-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Hasura_GraphQL_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Helium hotspot", "link": "https://github.com/tedder/helium_hotspot_exporter", "icon_filename": "helium.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Helium hotspot\n\n## Overview\n\nTrack Helium hotspot metrics for optimized LoRaWAN network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Helium hotspot exporter](https://github.com/tedder/helium_hotspot_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Helium hotspot exporter](https://github.com/tedder/helium_hotspot_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Helium_hotspot", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Helium miner (validator)", "link": "https://github.com/tedder/miner_exporter", "icon_filename": "helium.svg", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Helium miner (validator)\n\n## Overview\n\nMonitor Helium miner and validator metrics for efficient blockchain performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Helium miner (validator) exporter](https://github.com/tedder/miner_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Helium miner (validator) exporter](https://github.com/tedder/miner_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Helium_miner_(validator)", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Hitron CGN series CPE", "link": "https://github.com/yrro/hitron-exporter", "icon_filename": "hitron.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Hitron CGN series CPE\n\n## Overview\n\nMonitor Hitron CGNV4 gateway metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hitron CGNV4 exporter](https://github.com/yrro/hitron-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hitron CGNV4 exporter](https://github.com/yrro/hitron-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Hitron_CGN_series_CPE", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Hitron CODA Cable Modem", "link": "https://github.com/hairyhenderson/hitron_coda_exporter", "icon_filename": "hitron.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Hitron CODA Cable Modem\n\n## Overview\n\nTrack Hitron CODA cable modem metrics for optimized internet connectivity and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Hitron CODA Cable Modem Exporter](https://github.com/hairyhenderson/hitron_coda_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Hitron CODA Cable Modem Exporter](https://github.com/hairyhenderson/hitron_coda_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Hitron_CODA_Cable_Modem", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Homebridge", "link": "https://github.com/lstrojny/homebridge-prometheus-exporter", "icon_filename": "homebridge.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Homebridge\n\n## Overview\n\nMonitor Homebridge smart home metrics for efficient home automation management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Homebridge Prometheus Exporter](https://github.com/lstrojny/homebridge-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Homebridge Prometheus Exporter](https://github.com/lstrojny/homebridge-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Homebridge", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Homey", "link": "https://github.com/rickardp/homey-prometheus-exporter", "icon_filename": "homey.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Homey\n\n## Overview\n\nTrack Homey smart home controller metrics for efficient home automation and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Homey Exporter](https://github.com/rickardp/homey-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Homey Exporter](https://github.com/rickardp/homey-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Homey", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Honeypot", "link": "https://github.com/Intrinsec/honeypot_exporter", "icon_filename": "intrinsec.svg", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Honeypot\n\n## Overview\n\nMonitor honeypot metrics for efficient threat detection and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Intrinsec honeypot_exporter](https://github.com/Intrinsec/honeypot_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Intrinsec honeypot_exporter](https://github.com/Intrinsec/honeypot_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Honeypot", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Huawei devices", "link": "https://github.com/eliecharra/hilink-exporter", "icon_filename": "huawei.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Huawei devices\n\n## Overview\n\nKeep tabs on Huawei HiLink device metrics for optimized connectivity and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Huawei Hilink exporter](https://github.com/eliecharra/hilink-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Huawei Hilink exporter](https://github.com/eliecharra/hilink-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Huawei_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Hubble", "link": "https://github.com/cilium/hubble", "icon_filename": "hubble.png", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Hubble\n\n## Overview\n\nMonitor Hubble network observability metrics for efficient network visibility and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to Hubble built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure built-in Prometheus exporter\n\nTo configure the built-in Prometheus exporter, follow the [official documentation](https://docs.cilium.io/en/stable/observability/metrics/#hubble-metrics).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Hubble", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM AIX systems Njmon", "link": "https://github.com/crooks/njmon_exporter", "icon_filename": "ibm.svg", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM AIX systems Njmon\n\n## Overview\n\nKeep an eye on NJmon system performance monitoring metrics for efficient IT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NJmon](https://github.com/crooks/njmon_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NJmon](https://github.com/crooks/njmon_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_AIX_systems_Njmon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM CryptoExpress (CEX) cards", "link": "https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin", "icon_filename": "ibm.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM CryptoExpress (CEX) cards\n\n## Overview\n\nTrack IBM Z Crypto Express device metrics for optimized cryptographic performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Z CEX Device Plugin Prometheus Exporter](https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Z CEX Device Plugin Prometheus Exporter](https://github.com/ibm-s390-cloud/k8s-cex-dev-plugin) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_CryptoExpress_(CEX)_cards", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM MQ", "link": "https://github.com/agebhar1/mq_exporter", "icon_filename": "ibm.svg", "categories": ["data-collection.message-brokers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM MQ\n\n## Overview\n\nKeep tabs on IBM MQ message queue metrics for efficient message transport and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MQ Exporter](https://github.com/agebhar1/mq_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MQ Exporter](https://github.com/agebhar1/mq_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_MQ", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM Spectrum", "link": "https://github.com/topine/ibm-spectrum-exporter", "icon_filename": "ibm.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM Spectrum\n\n## Overview\n\nMonitor IBM Spectrum storage metrics for efficient data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Spectrum Exporter](https://github.com/topine/ibm-spectrum-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Spectrum Exporter](https://github.com/topine/ibm-spectrum-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_Spectrum", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM Spectrum Virtualize", "link": "https://github.com/bluecmd/spectrum_virtualize_exporter", "icon_filename": "ibm.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM Spectrum Virtualize\n\n## Overview\n\nMonitor IBM Spectrum Virtualize metrics for efficient storage virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [spectrum_virtualize_exporter](https://github.com/bluecmd/spectrum_virtualize_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [spectrum_virtualize_exporter](https://github.com/bluecmd/spectrum_virtualize_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_Spectrum_Virtualize", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IBM Z Hardware Management Console", "link": "https://github.com/zhmcclient/zhmc-prometheus-exporter", "icon_filename": "ibm.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IBM Z Hardware Management Console\n\n## Overview\n\nMonitor IBM Z Hardware Management Console metrics for efficient mainframe management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IBM Z HMC Exporter](https://github.com/zhmcclient/zhmc-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IBM Z HMC Exporter](https://github.com/zhmcclient/zhmc-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IBM_Z_Hardware_Management_Console", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IOTA full node", "link": "https://github.com/crholliday/iota-prom-exporter", "icon_filename": "iota.svg", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IOTA full node\n\n## Overview\n\nKeep an eye on IOTA cryptocurrency network metrics for efficient blockchain performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IOTA Exporter](https://github.com/crholliday/iota-prom-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IOTA Exporter](https://github.com/crholliday/iota-prom-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IOTA_full_node", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "IPMI (By SoundCloud)", "link": "https://github.com/prometheus-community/ipmi_exporter", "icon_filename": "soundcloud.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# IPMI (By SoundCloud)\n\n## Overview\n\nMonitor IPMI metrics externally for efficient server hardware management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SoundCloud IPMI Exporter (querying IPMI externally, blackbox-exporter style)](https://github.com/prometheus-community/ipmi_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SoundCloud IPMI Exporter (querying IPMI externally, blackbox-exporter style)](https://github.com/prometheus-community/ipmi_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-IPMI_(By_SoundCloud)", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "InfluxDB", "link": "https://github.com/prometheus/influxdb_exporter", "icon_filename": "influxdb.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["database", "dbms", "data storage"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# InfluxDB\n\n## Overview\n\nMonitor InfluxDB time-series database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [InfluxDB exporter](https://github.com/prometheus/influxdb_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [InfluxDB exporter](https://github.com/prometheus/influxdb_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-InfluxDB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "JMX", "link": "https://github.com/prometheus/jmx_exporter", "icon_filename": "java.svg", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# JMX\n\n## Overview\n\nTrack Java Management Extensions (JMX) metrics for efficient Java application management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [JMX Exporter](https://github.com/prometheus/jmx_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [JMX Exporter](https://github.com/prometheus/jmx_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-JMX", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Jarvis Standing Desk", "link": "https://github.com/hairyhenderson/jarvis_exporter/", "icon_filename": "jarvis.jpg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Jarvis Standing Desk\n\n## Overview\n\nTrack Jarvis standing desk usage metrics for efficient workspace ergonomics and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Jarvis Standing Desk Exporter](https://github.com/hairyhenderson/jarvis_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Jarvis Standing Desk Exporter](https://github.com/hairyhenderson/jarvis_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Jarvis_Standing_Desk", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Jenkins", "link": "https://www.jenkins.io/", "icon_filename": "jenkins.svg", "categories": ["data-collection.ci-cd-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Jenkins\n\n## Overview\n\nTrack Jenkins continuous integration server metrics for efficient development and build management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Jenkins exporter](https://github.com/simplesurance/jenkins-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Jenkins exporter](https://github.com/simplesurance/jenkins-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Jenkins", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "JetBrains Floating License Server", "link": "https://github.com/mkreu/jetbrains-fls-exporter", "icon_filename": "jetbrains.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# JetBrains Floating License Server\n\n## Overview\n\nMonitor JetBrains floating license server metrics for efficient software licensing management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [JetBrains Floating License Server Export](https://github.com/mkreu/jetbrains-fls-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [JetBrains Floating License Server Export](https://github.com/mkreu/jetbrains-fls-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-JetBrains_Floating_License_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kafka", "link": "https://github.com/danielqsj/kafka_exporter/", "icon_filename": "kafka.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["big data", "stream processing", "message broker"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kafka\n\n## Overview\n\nKeep an eye on Kafka message queue metrics for optimized data streaming and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Exporter](https://github.com/danielqsj/kafka_exporter/).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Exporter](https://github.com/danielqsj/kafka_exporter/) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kafka", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kafka Connect", "link": "https://github.com/findelabs/kafka-connect-exporter-rs", "icon_filename": "kafka.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["big data", "stream processing", "message broker"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kafka Connect\n\n## Overview\n\nKeep tabs on Kafka Connect metrics for efficient data streaming and integration.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Connect exporter](https://github.com/findelabs/kafka-connect-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Connect exporter](https://github.com/findelabs/kafka-connect-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kafka_Connect", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kafka Consumer Lag", "link": "https://github.com/omarsmak/kafka-consumer-lag-monitoring", "icon_filename": "kafka.svg", "categories": ["data-collection.service-discovery-registry"]}, "keywords": ["big data", "stream processing", "message broker"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kafka Consumer Lag\n\n## Overview\n\nMonitor Kafka consumer lag metrics for efficient message queue management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka Consumer Lag Monitoring](https://github.com/omarsmak/kafka-consumer-lag-monitoring).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka Consumer Lag Monitoring](https://github.com/omarsmak/kafka-consumer-lag-monitoring) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kafka_Consumer_Lag", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kafka ZooKeeper", "link": "https://github.com/cloudflare/kafka_zookeeper_exporter", "icon_filename": "kafka.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["big data", "stream processing", "message broker"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kafka ZooKeeper\n\n## Overview\n\nMonitor Kafka ZooKeeper metrics for optimized distributed coordination and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kafka ZooKeeper Exporter](https://github.com/cloudflare/kafka_zookeeper_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kafka ZooKeeper Exporter](https://github.com/cloudflare/kafka_zookeeper_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kafka_ZooKeeper", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kannel", "link": "https://github.com/apostvav/kannel_exporter", "icon_filename": "kannel.png", "categories": ["data-collection.telephony-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kannel\n\n## Overview\n\nKeep tabs on Kannel SMS gateway and WAP gateway metrics for efficient mobile communication and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kannel Exporter](https://github.com/apostvav/kannel_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kannel Exporter](https://github.com/apostvav/kannel_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kannel", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Keepalived", "link": "https://github.com/gen2brain/keepalived_exporter", "icon_filename": "keepalived.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Keepalived\n\n## Overview\n\nTrack Keepalived metrics for efficient high-availability and load balancing management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Keepalived Exporter](https://github.com/gen2brain/keepalived_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Keepalived Exporter](https://github.com/gen2brain/keepalived_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Keepalived", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Kubernetes Cluster Cloud Cost", "link": "https://github.com/agilestacks/korral", "icon_filename": "kubernetes.svg", "categories": ["data-collection.kubernetes"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Kubernetes Cluster Cloud Cost\n\n## Overview\n\nKeep an eye on Kubernetes cloud cost metrics for efficient cloud resource management and budgeting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Kubernetes Cloud Cost Exporter](https://github.com/agilestacks/korral).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Kubernetes Cloud Cost Exporter](https://github.com/agilestacks/korral) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Kubernetes_Cluster_Cloud_Cost", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "LDAP", "link": "https://github.com/titisan/ldap_exporter", "icon_filename": "ldap.png", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# LDAP\n\n## Overview\n\nKeep an eye on Lightweight Directory Access Protocol (LDAP) metrics for efficient directory service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [LDAP Exporter](https://github.com/titisan/ldap_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [LDAP Exporter](https://github.com/titisan/ldap_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-LDAP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Lagerist Disk latency", "link": "https://github.com/Svedrin/lagerist", "icon_filename": "linux.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Lagerist Disk latency\n\n## Overview\n\nTrack disk latency metrics for efficient storage performance and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Lagerist Disk latency exporter](https://github.com/Svedrin/lagerist).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Lagerist Disk latency exporter](https://github.com/Svedrin/lagerist) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Lagerist_Disk_latency", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Linode", "link": "https://github.com/DazWilkin/linode-exporter", "icon_filename": "linode.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Linode\n\n## Overview\n\nMonitor Linode cloud hosting metrics for efficient virtual server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Linode Exporter](https://github.com/DazWilkin/linode-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Linode Exporter](https://github.com/DazWilkin/linode-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Linode", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Lustre metadata", "link": "https://github.com/GSI-HPC/prometheus-cluster-exporter", "icon_filename": "lustre.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Lustre metadata\n\n## Overview\n\nKeep tabs on Lustre clustered file system for efficient management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Cluster Exporter](https://github.com/GSI-HPC/prometheus-cluster-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Cluster Exporter](https://github.com/GSI-HPC/prometheus-cluster-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Lustre_metadata", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Lynis audit reports", "link": "https://github.com/MauveSoftware/lynis_exporter", "icon_filename": "lynis.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Lynis audit reports\n\n## Overview\n\nTrack Lynis security auditing tool metrics for efficient system security and compliance management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [lynis_exporter](https://github.com/MauveSoftware/lynis_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [lynis_exporter](https://github.com/MauveSoftware/lynis_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Lynis_audit_reports", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "MP707 USB thermometer", "link": "https://github.com/nradchenko/mp707_exporter", "icon_filename": "thermometer.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# MP707 USB thermometer\n\n## Overview\n\nTrack MP707 power strip metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MP707 exporter](https://github.com/nradchenko/mp707_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MP707 exporter](https://github.com/nradchenko/mp707_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-MP707_USB_thermometer", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "MQTT Blackbox", "link": "https://github.com/inovex/mqtt_blackbox_exporter", "icon_filename": "mqtt.svg", "categories": ["data-collection.message-brokers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# MQTT Blackbox\n\n## Overview\n\nTrack MQTT message transport performance using blackbox testing methods.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MQTT Blackbox Exporter](https://github.com/inovex/mqtt_blackbox_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MQTT Blackbox Exporter](https://github.com/inovex/mqtt_blackbox_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-MQTT_Blackbox", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Machbase", "link": "https://github.com/MACHBASE/prometheus-machbase-exporter", "icon_filename": "machbase.png", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Machbase\n\n## Overview\n\nMonitor Machbase time-series database metrics for efficient data storage and query performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Machbase Exporter](https://github.com/MACHBASE/prometheus-machbase-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Machbase Exporter](https://github.com/MACHBASE/prometheus-machbase-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Machbase", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Maildir", "link": "https://github.com/cherti/mailexporter", "icon_filename": "mailserver.svg", "categories": ["data-collection.mail-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Maildir\n\n## Overview\n\nTrack mail server metrics for optimized email management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mailexporter](https://github.com/cherti/mailexporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mailexporter](https://github.com/cherti/mailexporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Maildir", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Meilisearch", "link": "https://github.com/scottaglia/meilisearch_exporter", "icon_filename": "meilisearch.svg", "categories": ["data-collection.search-engines"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Meilisearch\n\n## Overview\n\nTrack Meilisearch search engine metrics for efficient search performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Meilisearch Exporter](https://github.com/scottaglia/meilisearch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Meilisearch Exporter](https://github.com/scottaglia/meilisearch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Meilisearch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Memcached", "link": "https://github.com/prometheus/memcached_exporter", "icon_filename": "memcached.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Memcached\n\n## Overview\n\nMonitor Memcached in-memory key-value store metrics for efficient caching performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Memcached exporter](https://github.com/prometheus/memcached_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Memcached exporter](https://github.com/prometheus/memcached_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Memcached", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Meraki dashboard", "link": "https://github.com/TheHolm/meraki-dashboard-promethus-exporter", "icon_filename": "meraki.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Meraki dashboard\n\n## Overview\n\nKeep tabs on Cisco Meraki cloud-managed networking device metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Meraki dashboard data exporter using API](https://github.com/TheHolm/meraki-dashboard-promethus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Meraki dashboard data exporter using API](https://github.com/TheHolm/meraki-dashboard-promethus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Meraki_dashboard", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Mesos", "link": "http://github.com/mesosphere/mesos_exporter", "icon_filename": "mesos.svg", "categories": ["data-collection.task-queues", "data-collection.provisioning-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Mesos\n\n## Overview\n\nMonitor Apache Mesos cluster manager metrics for efficient resource management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Mesos exporter](http://github.com/mesosphere/mesos_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Mesos exporter](http://github.com/mesosphere/mesos_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Mesos", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "MikroTik devices", "link": "https://github.com/swoga/mikrotik-exporter", "icon_filename": "mikrotik.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# MikroTik devices\n\n## Overview\n\nKeep tabs on MikroTik RouterOS metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mikrotik-exporter](https://github.com/swoga/mikrotik-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nshttpd/mikrotik-exporter, swoga/m](https://github.com/swoga/mikrotik-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-MikroTik_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Mikrotik RouterOS devices", "link": "https://github.com/welbymcroberts/routeros_exporter", "icon_filename": "routeros.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Mikrotik RouterOS devices\n\n## Overview\n\nTrack MikroTik RouterOS metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RouterOS exporter](https://github.com/welbymcroberts/routeros_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RouterOS exporter](https://github.com/welbymcroberts/routeros_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Mikrotik_RouterOS_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Minecraft", "link": "https://github.com/sladkoff/minecraft-prometheus-exporter", "icon_filename": "minecraft.png", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Minecraft\n\n## Overview\n\nTrack Minecraft server metrics for efficient game server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Minecraft Exporter](https://github.com/sladkoff/minecraft-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Minecraft Exporter](https://github.com/sladkoff/minecraft-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Minecraft", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Modbus protocol", "link": "https://github.com/dernasherbrezon/modbusrtu_exporter", "icon_filename": "modbus.svg", "categories": ["data-collection.iot-devices"]}, "keywords": ["database", "dbms", "data storage"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Modbus protocol\n\n## Overview\n\nTrack Modbus RTU protocol metrics for efficient industrial automation and control performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [modbusrtu_exporter](https://github.com/dernasherbrezon/modbusrtu_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [modbusrtu_exporter](https://github.com/dernasherbrezon/modbusrtu_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Modbus_protocol", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "MogileFS", "link": "https://github.com/KKBOX/mogilefs-exporter", "icon_filename": "filesystem.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# MogileFS\n\n## Overview\n\nMonitor MogileFS distributed file system metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MogileFS Exporter](https://github.com/KKBOX/mogilefs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MogileFS Exporter](https://github.com/KKBOX/mogilefs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-MogileFS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Monnit Sensors MQTT", "link": "https://github.com/braxton9460/monnit-mqtt-exporter", "icon_filename": "monnit.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Monnit Sensors MQTT\n\n## Overview\n\nTrack Monnit sensor data via MQTT for efficient IoT device monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Monnit Sensors MQTT Exporter WIP](https://github.com/braxton9460/monnit-mqtt-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Monnit Sensors MQTT Exporter WIP](https://github.com/braxton9460/monnit-mqtt-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Monnit_Sensors_MQTT", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NRPE daemon", "link": "https://github.com/canonical/nrpe_exporter", "icon_filename": "nrpelinux.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NRPE daemon\n\n## Overview\n\nMonitor Nagios Remote Plugin Executor (NRPE) metrics for efficient system and network monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NRPE exporter](https://github.com/canonical/nrpe_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NRPE exporter](https://github.com/canonical/nrpe_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NRPE_daemon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NSX-T", "link": "https://github.com/jk8s/nsxt_exporter", "icon_filename": "vmware-nsx.svg", "categories": ["data-collection.containers-and-vms"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NSX-T\n\n## Overview\n\nTrack VMware NSX-T software-defined networking metrics for efficient network virtualization and security management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NSX-T Exporter](https://github.com/jk8s/nsxt_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NSX-T Exporter](https://github.com/jk8s/nsxt_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NSX-T", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NVML", "link": "https://github.com/oko/nvml-exporter-rs", "icon_filename": "nvidia.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NVML\n\n## Overview\n\nKeep an eye on NVIDIA Management Library (NVML) GPU metrics for efficient GPU performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NVML exporter](https://github.com/oko/nvml-exporter-rs).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NVML exporter](https://github.com/oko/nvml-exporter-rs) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NVML", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Naemon", "link": "https://github.com/Griesbacher/Iapetos", "icon_filename": "naemon.svg", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Naemon\n\n## Overview\n\nMonitor Naemon or Nagios network monitoring metrics for efficient IT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Naemon / Nagios Exporter](https://github.com/Griesbacher/Iapetos).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Naemon / Nagios Exporter](https://github.com/Griesbacher/Iapetos) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Naemon", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Nagios", "link": "https://github.com/wbollock/nagios_exporter", "icon_filename": "nagios.png", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Nagios\n\n## Overview\n\nKeep tabs on Nagios network monitoring metrics for efficient\nIT infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nagios exporter](https://github.com/wbollock/nagios_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nagios exporter](https://github.com/wbollock/nagios_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Nagios", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Nature Remo E lite devices", "link": "https://github.com/kenfdev/remo-exporter", "icon_filename": "nature-remo.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Nature Remo E lite devices\n\n## Overview\n\nMonitor Nature Remo E series smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nature Remo E series Exporter](https://github.com/kenfdev/remo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nature Remo E series Exporter](https://github.com/kenfdev/remo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Nature_Remo_E_lite_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NetApp Solidfire", "link": "https://github.com/mjavier2k/solidfire-exporter", "icon_filename": "netapp.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NetApp Solidfire\n\n## Overview\n\nTrack NetApp Solidfire storage system metrics for efficient data storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NetApp Solidfire Exporter](https://github.com/mjavier2k/solidfire-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NetApp Solidfire Exporter](https://github.com/mjavier2k/solidfire-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NetApp_Solidfire", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NetFlow", "link": "https://github.com/paihu/netflow_exporter", "icon_filename": "netflow.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NetFlow\n\n## Overview\n\nTrack NetFlow network traffic metrics for efficient network monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [netflow exporter](https://github.com/paihu/netflow_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [netflow exporter](https://github.com/paihu/netflow_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NetFlow", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NetMeter", "link": "https://github.com/ssbostan/netmeter-exporter", "icon_filename": "netmeter.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NetMeter\n\n## Overview\n\nMonitor NetMeter network traffic metrics for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [NetMeter Exporter](https://github.com/ssbostan/netmeter-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [NetMeter Exporter](https://github.com/ssbostan/netmeter-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NetMeter", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Netapp ONTAP API", "link": "https://github.com/sapcc/netapp-api-exporter", "icon_filename": "netapp.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Netapp ONTAP API\n\n## Overview\n\nKeep tabs on NetApp ONTAP storage system metrics for efficient data storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Netapp ONTAP API Exporter](https://github.com/sapcc/netapp-api-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Netapp ONTAP API Exporter](https://github.com/sapcc/netapp-api-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Netapp_ONTAP_API", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Netatmo sensors", "link": "https://github.com/xperimental/netatmo-exporter", "icon_filename": "netatmo.svg", "categories": ["data-collection.iot-devices"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Netatmo sensors\n\n## Overview\n\nKeep an eye on Netatmo smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Netatmo exporter](https://github.com/xperimental/netatmo-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Netatmo exporter](https://github.com/xperimental/netatmo-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Netatmo_sensors", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Network UPS Tools", "link": "https://github.com/HON95/prometheus-nut-exporter", "icon_filename": "nut.png", "categories": ["data-collection.ups"]}, "keywords": ["network monitoring", "network performance", "traffic analysis", "nut"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Network UPS Tools\n\n## Overview\n\nTrack Network UPS Tools (NUT) metrics for efficient uninterruptible power supply management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Network UPS Tools exporter](https://github.com/HON95/prometheus-nut-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Network UPS Tools exporter](https://github.com/HON95/prometheus-nut-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Network_UPS_Tools", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "New Relic", "link": "https://github.com/jfindley/newrelic_exporter", "icon_filename": "newrelic.svg", "categories": ["data-collection.observability"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# New Relic\n\n## Overview\n\nMonitor New Relic application performance management metrics for efficient application monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [New Relic exporter](https://github.com/jfindley/newrelic_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [New Relic exporter](https://github.com/jfindley/newrelic_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-New_Relic", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "NextDNS", "link": "https://github.com/raylas/nextdns-exporter", "icon_filename": "nextdns.png", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# NextDNS\n\n## Overview\n\nTrack NextDNS DNS resolver and security platform metrics for efficient DNS management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [nextdns-exporter](https://github.com/raylas/nextdns-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nextdns-exporter](https://github.com/raylas/nextdns-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-NextDNS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Nextcloud servers", "link": "https://github.com/xperimental/nextcloud-exporter", "icon_filename": "nextcloud.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": ["cloud services", "cloud computing", "scalability"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Nextcloud servers\n\n## Overview\n\nKeep an eye on Nextcloud cloud storage metrics for efficient file hosting and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Nextcloud exporter](https://github.com/xperimental/nextcloud-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Nextcloud exporter](https://github.com/xperimental/nextcloud-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Nextcloud_servers", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OBS Studio", "link": "https://github.com/lukegb/obs_studio_exporter", "icon_filename": "obs-studio.png", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OBS Studio\n\n## Overview\n\nTrack OBS Studio live streaming and recording software metrics for efficient video production and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OBS Studio Exporter](https://github.com/lukegb/obs_studio_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OBS Studio Exporter](https://github.com/lukegb/obs_studio_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OBS_Studio", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ODBC", "link": "https://github.com/MACHBASE/prometheus-odbc-exporter", "icon_filename": "odbc.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["database", "dbms", "data storage"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ODBC\n\n## Overview\n\nKeep tabs on Open Database Connectivity (ODBC) metrics for efficient database connection and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ODBC Exporter](https://github.com/MACHBASE/prometheus-odbc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ODBC Exporter](https://github.com/MACHBASE/prometheus-odbc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ODBC", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OTRS", "link": "https://github.com/JulianDroste/otrs_exporter", "icon_filename": "otrs.png", "categories": ["data-collection.notifications"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OTRS\n\n## Overview\n\nMonitor OTRS (Open-Source Ticket Request System) metrics for efficient helpdesk management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OTRS Exporter](https://github.com/JulianDroste/otrs_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OTRS Exporter](https://github.com/JulianDroste/otrs_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OTRS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenHAB", "link": "https://github.com/pdreker/openhab_exporter", "icon_filename": "openhab.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenHAB\n\n## Overview\n\nTrack openHAB smart home automation system metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenHAB exporter](https://github.com/pdreker/openhab_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenHAB exporter](https://github.com/pdreker/openhab_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenHAB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenLDAP", "link": "https://github.com/tomcz/openldap_exporter", "icon_filename": "openldap.svg", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenLDAP\n\n## Overview\n\nMonitor OpenLDAP directory service metrics for efficient directory management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenLDAP Metrics Exporter](https://github.com/tomcz/openldap_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenLDAP Metrics Exporter](https://github.com/tomcz/openldap_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenLDAP", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenRC", "link": "https://git.sr.ht/~tomleb/openrc-exporter", "icon_filename": "linux.png", "categories": ["data-collection.linux-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenRC\n\n## Overview\n\nKeep tabs on OpenRC init system metrics for efficient system startup and service management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [openrc-exporter](https://git.sr.ht/~tomleb/openrc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [openrc-exporter](https://git.sr.ht/~tomleb/openrc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenRC", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenRCT2", "link": "https://github.com/terinjokes/openrct2-prometheus-exporter", "icon_filename": "openRCT2.png", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenRCT2\n\n## Overview\n\nTrack OpenRCT2 game metrics for efficient game server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenRCT2 Prometheus Exporter](https://github.com/terinjokes/openrct2-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenRCT2 Prometheus Exporter](https://github.com/terinjokes/openrct2-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenRCT2", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenROADM devices", "link": "https://github.com/utdal/openroadm_exporter", "icon_filename": "openroadm.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": ["network monitoring", "network performance", "traffic analysis"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenROADM devices\n\n## Overview\n\nMonitor OpenROADM optical transport network metrics using the NETCONF protocol for efficient network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenROADM NETCONF Exporter WIP](https://github.com/utdal/openroadm_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenROADM NETCONF Exporter WIP](https://github.com/utdal/openroadm_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenROADM_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenStack", "link": "https://github.com/CanonicalLtd/prometheus-openstack-exporter", "icon_filename": "openstack.svg", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenStack\n\n## Overview\n\nTrack OpenStack cloud computing platform metrics for efficient infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Openstack exporter](https://github.com/CanonicalLtd/prometheus-openstack-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Openstack exporter](https://github.com/CanonicalLtd/prometheus-openstack-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenStack", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenVAS", "link": "https://github.com/ModeClearCode/openvas_exporter", "icon_filename": "openVAS.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenVAS\n\n## Overview\n\nMonitor OpenVAS vulnerability scanner metrics for efficient security assessment and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenVAS exporter](https://github.com/ModeClearCode/openvas_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenVAS exporter](https://github.com/ModeClearCode/openvas_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenVAS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "OpenWeatherMap", "link": "https://github.com/Tenzer/openweathermap-exporter", "icon_filename": "openweather.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# OpenWeatherMap\n\n## Overview\n\nTrack OpenWeatherMap weather data and air pollution metrics for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [OpenWeatherMap Exporter](https://github.com/Tenzer/openweathermap-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [OpenWeatherMap Exporter](https://github.com/Tenzer/openweathermap-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-OpenWeatherMap", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Open vSwitch", "link": "https://github.com/digitalocean/openvswitch_exporter", "icon_filename": "ovs.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Open vSwitch\n\n## Overview\n\nKeep an eye on Open vSwitch software-defined networking metrics for efficient network virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Open vSwitch Exporter](https://github.com/digitalocean/openvswitch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Open vSwitch Exporter](https://github.com/digitalocean/openvswitch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Open_vSwitch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Oracle DB", "link": "https://github.com/iamseth/oracledb_exporter", "icon_filename": "oracle.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["oracle", "database", "dbms", "data storage"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Oracle DB\n\n## Overview\n\nTrack Oracle Database metrics for efficient database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Oracle DB Exporter](https://github.com/iamseth/oracledb_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Oracle DB Exporter](https://github.com/iamseth/oracledb_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Oracle_DB", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Patroni", "link": "https://github.com/gopaytech/patroni_exporter", "icon_filename": "patroni.png", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Patroni\n\n## Overview\n\nKeep tabs on Patroni PostgreSQL high-availability metrics for efficient database management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Patroni Exporter](https://github.com/gopaytech/patroni_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Patroni Exporter](https://github.com/gopaytech/patroni_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Patroni", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Personal Weather Station", "link": "https://github.com/JohnOrthoefer/pws-exporter", "icon_filename": "wunderground.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Personal Weather Station\n\n## Overview\n\nTrack personal weather station metrics for efficient weather monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Personal Weather Station Exporter](https://github.com/JohnOrthoefer/pws-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Personal Weather Station Exporter](https://github.com/JohnOrthoefer/pws-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Personal_Weather_Station", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Pgpool-II", "link": "https://github.com/pgpool/pgpool2_exporter", "icon_filename": "pgpool2.png", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Pgpool-II\n\n## Overview\n\nTrack Pgpool-II PostgreSQL middleware metrics for efficient database connection management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pgpool-II Exporter](https://github.com/pgpool/pgpool2_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pgpool-II Exporter](https://github.com/pgpool/pgpool2_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Pgpool-II", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Philips Hue", "link": "https://github.com/aexel90/hue_exporter", "icon_filename": "hue.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Philips Hue\n\n## Overview\n\nKeep an eye on Philips Hue smart lighting metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Philips Hue Exporter](https://github.com/aexel90/hue_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Philips Hue Exporter](https://github.com/aexel90/hue_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Philips_Hue", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Pimoroni Enviro+", "link": "https://github.com/terradolor/prometheus-enviro-exporter", "icon_filename": "pimorino.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Pimoroni Enviro+\n\n## Overview\n\nTrack Pimoroni Enviro+ air quality and environmental metrics for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pimoroni Enviro+ Exporter](https://github.com/terradolor/prometheus-enviro-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pimoroni Enviro+ Exporter](https://github.com/terradolor/prometheus-enviro-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Pimoroni_Enviro+", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Pingdom", "link": "https://github.com/veepee-oss/pingdom_exporter", "icon_filename": "solarwinds.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Pingdom\n\n## Overview\n\nMonitor Pingdom website monitoring service metrics for efficient website performance management and diagnostics.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Pingdom Exporter](https://github.com/veepee-oss/pingdom_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Pingdom Exporter](https://github.com/veepee-oss/pingdom_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Pingdom", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Podman", "link": "https://github.com/containers/prometheus-podman-exporter", "icon_filename": "podman.png", "categories": ["data-collection.containers-and-vms"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Podman\n\n## Overview\n\nKeep tabs on Podman container runtime metrics for efficient container management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [PODMAN exporter](https://github.com/containers/prometheus-podman-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [PODMAN exporter](https://github.com/containers/prometheus-podman-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Podman", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Powerpal devices", "link": "https://github.com/aashley/powerpal_exporter", "icon_filename": "powerpal.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Powerpal devices\n\n## Overview\n\nKeep an eye on Powerpal smart meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Powerpal Exporter](https://github.com/aashley/powerpal_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Powerpal Exporter](https://github.com/aashley/powerpal_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Powerpal_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ProFTPD", "link": "https://github.com/transnano/proftpd_exporter", "icon_filename": "proftpd.png", "categories": ["data-collection.ftp-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ProFTPD\n\n## Overview\n\nMonitor ProFTPD FTP server metrics for efficient file transfer and server performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ProFTPD Exporter](https://github.com/transnano/proftpd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ProFTPD Exporter](https://github.com/transnano/proftpd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ProFTPD", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Prometheus endpoint", "link": "https://prometheus.io/", "icon_filename": "prometheus.svg", "categories": ["data-collection.generic-data-collection"]}, "keywords": ["prometheus"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Prometheus endpoint\n\n## Overview\n\nThis generic Prometheus collector gathers metrics from any [`Prometheus`](https://prometheus.io/) endpoints.\n\n\nIt collects metrics by periodically sending HTTP requests to the target instance.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Prometheus_endpoint", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Proxmox VE", "link": "https://github.com/prometheus-pve/prometheus-pve-exporter", "icon_filename": "proxmox.png", "categories": ["data-collection.containers-and-vms"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Proxmox VE\n\n## Overview\n\nKeep tabs on Proxmox Virtual Environment metrics for efficient virtualization and container management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Proxmox VE Exporter](https://github.com/prometheus-pve/prometheus-pve-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Proxmox VE Exporter](https://github.com/prometheus-pve/prometheus-pve-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Proxmox_VE", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "RADIUS", "link": "https://github.com/devon-mar/radius-exporter", "icon_filename": "radius.png", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# RADIUS\n\n## Overview\n\nKeep tabs on RADIUS (Remote Authentication Dial-In User Service) protocol metrics for efficient authentication and access management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RADIUS exporter](https://github.com/devon-mar/radius-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RADIUS exporter](https://github.com/devon-mar/radius-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-RADIUS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "RIPE Atlas", "link": "https://github.com/czerwonk/atlas_exporter", "icon_filename": "ripe.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# RIPE Atlas\n\n## Overview\n\nKeep tabs on RIPE Atlas Internet measurement platform metrics for efficient network monitoring and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [RIPE Atlas Exporter](https://github.com/czerwonk/atlas_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [RIPE Atlas Exporter](https://github.com/czerwonk/atlas_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-RIPE_Atlas", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Radio Thermostat", "link": "https://github.com/andrewlow/radio-thermostat-exporter", "icon_filename": "radiots.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Radio Thermostat\n\n## Overview\n\nMonitor Radio Thermostat smart thermostat metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Radio Thermostat Exporter](https://github.com/andrewlow/radio-thermostat-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Radio Thermostat Exporter](https://github.com/andrewlow/radio-thermostat-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Radio_Thermostat", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Rancher", "link": "https://github.com/infinityworksltd/prometheus-rancher-exporter", "icon_filename": "rancher.svg", "categories": ["data-collection.kubernetes"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Rancher\n\n## Overview\n\nTrack Rancher container orchestration platform metrics for efficient container management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Rancher Exporter](https://github.com/infinityworksltd/prometheus-rancher-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Rancher Exporter](https://github.com/infinityworksltd/prometheus-rancher-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Rancher", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Raritan PDU", "link": "https://github.com/psyinfra/prometheus-raritan-pdu-exporter", "icon_filename": "raritan.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Raritan PDU\n\n## Overview\n\nMonitor Raritan Power Distribution Unit (PDU) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Raritan PDU Exporter](https://github.com/psyinfra/prometheus-raritan-pdu-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Raritan PDU Exporter](https://github.com/psyinfra/prometheus-raritan-pdu-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Raritan_PDU", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Redis Queue", "link": "https://github.com/mdawar/rq-exporter", "icon_filename": "rq.png", "categories": ["data-collection.message-brokers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Redis Queue\n\n## Overview\n\nMonitor Python RQ (Redis Queue) job queue metrics for efficient task management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Python RQ Exporter](https://github.com/mdawar/rq-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Python RQ Exporter](https://github.com/mdawar/rq-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Redis_Queue", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SABnzbd", "link": "https://github.com/msroest/sabnzbd_exporter", "icon_filename": "sabnzbd.png", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SABnzbd\n\n## Overview\n\nMonitor SABnzbd Usenet client metrics for efficient file downloads and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SABnzbd Exporter](https://github.com/msroest/sabnzbd_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SABnzbd Exporter](https://github.com/msroest/sabnzbd_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SABnzbd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SMA Inverters", "link": "https://github.com/dr0ps/sma_inverter_exporter", "icon_filename": "sma.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SMA Inverters\n\n## Overview\n\nMonitor SMA solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [sma-exporter](https://github.com/dr0ps/sma_inverter_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [sma-exporter](https://github.com/dr0ps/sma_inverter_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SMA_Inverters", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SONiC NOS", "link": "https://github.com/kamelnetworks/sonic_exporter", "icon_filename": "sonic.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SONiC NOS\n\n## Overview\n\nKeep tabs on Software for Open Networking in the Cloud (SONiC) metrics for efficient network switch management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SONiC Exporter](https://github.com/kamelnetworks/sonic_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SONiC Exporter](https://github.com/kamelnetworks/sonic_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SONiC_NOS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SQL Database agnostic", "link": "https://github.com/free/sql_exporter", "icon_filename": "sql.svg", "categories": ["data-collection.database-servers"]}, "keywords": ["database", "relational db", "data querying"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SQL Database agnostic\n\n## Overview\n\nQuery SQL databases for efficient database performance monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SQL Exporter](https://github.com/free/sql_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SQL Exporter](https://github.com/free/sql_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SQL_Database_agnostic", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SSH", "link": "https://github.com/Nordstrom/ssh_exporter", "icon_filename": "ssh.png", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SSH\n\n## Overview\n\nMonitor SSH server metrics for efficient secure shell server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SSH Exporter](https://github.com/Nordstrom/ssh_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SSH Exporter](https://github.com/Nordstrom/ssh_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SSH", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SSL Certificate", "link": "https://github.com/ribbybibby/ssl_exporter", "icon_filename": "ssl.svg", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SSL Certificate\n\n## Overview\n\nTrack SSL/TLS certificate metrics for efficient web security and certificate management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SSL Certificate exporter](https://github.com/ribbybibby/ssl_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SSL Certificate exporter](https://github.com/ribbybibby/ssl_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SSL_Certificate", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Salicru EQX inverter", "link": "https://github.com/alejandroscf/prometheus_salicru_exporter", "icon_filename": "salicru.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Salicru EQX inverter\n\n## Overview\n\nKeep tabs on Salicru EQX solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Salicru EQX inverter](https://github.com/alejandroscf/prometheus_salicru_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Salicru EQX inverter](https://github.com/alejandroscf/prometheus_salicru_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Salicru_EQX_inverter", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sense Energy", "link": "https://github.com/ejsuncy/sense_energy_prometheus_exporter", "icon_filename": "sense.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sense Energy\n\n## Overview\n\nKeep tabs on Sense Energy smart meter metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sense Energy exporter](https://github.com/ejsuncy/sense_energy_prometheus_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sense Energy exporter](https://github.com/ejsuncy/sense_energy_prometheus_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sense_Energy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sentry", "link": "https://github.com/snakecharmer/sentry_exporter", "icon_filename": "sentry.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sentry\n\n## Overview\n\nTrack Sentry error tracking and monitoring platform metrics for efficient application performance and error management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sentry Exporter](https://github.com/snakecharmer/sentry_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sentry Exporter](https://github.com/snakecharmer/sentry_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sentry", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "ServerTech", "link": "https://github.com/tynany/servertech_exporter", "icon_filename": "servertech.png", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# ServerTech\n\n## Overview\n\nKeep an eye on Server Technology power distribution unit (PDU) metrics for efficient power management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ServerTech Exporter](https://github.com/tynany/servertech_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ServerTech Exporter](https://github.com/tynany/servertech_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-ServerTech", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Shell command", "link": "https://github.com/tomwilkie/prom-run", "icon_filename": "crunner.svg", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Shell command\n\n## Overview\n\nTrack custom command output metrics for tailored monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Command runner exporter](https://github.com/tomwilkie/prom-run).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Command runner exporter](https://github.com/tomwilkie/prom-run) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Shell_command", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Shelly humidity sensor", "link": "https://github.com/aexel90/shelly_exporter", "icon_filename": "shelly.jpg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Shelly humidity sensor\n\n## Overview\n\nMonitor Shelly smart home device metrics for efficient home automation and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Shelly Exporter](https://github.com/aexel90/shelly_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Shelly Exporter](https://github.com/aexel90/shelly_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Shelly_humidity_sensor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sia", "link": "https://github.com/tbenz9/sia_exporter", "icon_filename": "sia.png", "categories": ["data-collection.blockchain-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sia\n\n## Overview\n\nTrack Sia decentralized storage platform metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sia Exporter](https://github.com/tbenz9/sia_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sia Exporter](https://github.com/tbenz9/sia_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sia", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Siemens S7 PLC", "link": "https://github.com/MarcusCalidus/s7-plc-exporter", "icon_filename": "siemens.svg", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Siemens S7 PLC\n\n## Overview\n\nMonitor Siemens S7 Programmable Logic Controller (PLC) metrics for efficient industrial automation and control.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Siemens S7 PLC exporter](https://github.com/MarcusCalidus/s7-plc-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Siemens S7 PLC exporter](https://github.com/MarcusCalidus/s7-plc-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Siemens_S7_PLC", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Site 24x7", "link": "https://github.com/svenstaro/site24x7_exporter", "icon_filename": "site24x7.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Site 24x7\n\n## Overview\n\nMonitor Site24x7 website and infrastructure monitoring metrics for efficient performance tracking and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [site24x7 Exporter](https://github.com/svenstaro/site24x7_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [site24x7 Exporter](https://github.com/svenstaro/site24x7_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Site_24x7", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Slurm", "link": "https://github.com/vpenso/prometheus-slurm-exporter", "icon_filename": "slurm.png", "categories": ["data-collection.task-queues", "data-collection.provisioning-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Slurm\n\n## Overview\n\nTrack Slurm workload manager metrics for efficient high-performance computing (HPC) and cluster management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [slurm exporter](https://github.com/vpenso/prometheus-slurm-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [slurm exporter](https://github.com/vpenso/prometheus-slurm-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Slurm", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SmartRG 808AC Cable Modem", "link": "https://github.com/AdamIsrael/smartrg808ac_exporter", "icon_filename": "smartr.jpeg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SmartRG 808AC Cable Modem\n\n## Overview\n\nMonitor SmartRG SR808ac router metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [smartrg808ac_exporter](https://github.com/AdamIsrael/smartrg808ac_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [smartrg808ac_exporter](https://github.com/AdamIsrael/smartrg808ac_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SmartRG_808AC_Cable_Modem", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Smart meters SML", "link": "https://github.com/mweinelt/sml-exporter", "icon_filename": "sml.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Smart meters SML\n\n## Overview\n\nMonitor Smart Message Language (SML) metrics for efficient smart metering and energy management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SML Exporter](https://github.com/mweinelt/sml-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SML Exporter](https://github.com/mweinelt/sml-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Smart_meters_SML", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SoftEther VPN Server", "link": "https://github.com/dalance/softether_exporter", "icon_filename": "softether.svg", "categories": ["data-collection.vpns"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SoftEther VPN Server\n\n## Overview\n\nMonitor SoftEther VPN Server metrics for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SoftEther Exporter](https://github.com/dalance/softether_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SoftEther Exporter](https://github.com/dalance/softether_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SoftEther_VPN_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "SolarEdge inverters", "link": "https://github.com/dave92082/SolarEdge-Exporter", "icon_filename": "solaredge.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# SolarEdge inverters\n\n## Overview\n\nTrack SolarEdge solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [SolarEdge Exporter](https://github.com/dave92082/SolarEdge-Exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [SolarEdge Exporter](https://github.com/dave92082/SolarEdge-Exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-SolarEdge_inverters", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Solar logging stick", "link": "https://gitlab.com/bhavin192/lsx-exporter", "icon_filename": "solar.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Solar logging stick\n\n## Overview\n\nMonitor solar energy metrics using a solar logging stick for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Solar logging stick exporter](https://gitlab.com/bhavin192/lsx-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Solar logging stick exporter](https://gitlab.com/bhavin192/lsx-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Solar_logging_stick", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Solis Ginlong 5G inverters", "link": "https://github.com/candlerb/solis_exporter", "icon_filename": "solis.jpg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Solis Ginlong 5G inverters\n\n## Overview\n\nMonitor Solis solar inverter metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Solis Exporter](https://github.com/candlerb/solis_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Solis Exporter](https://github.com/candlerb/solis_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Solis_Ginlong_5G_inverters", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Spacelift", "link": "https://github.com/spacelift-io/prometheus-exporter", "icon_filename": "spacelift.png", "categories": ["data-collection.provisioning-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Spacelift\n\n## Overview\n\nTrack Spacelift infrastructure-as-code (IaC) platform metrics for efficient infrastructure automation and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Spacelift Exporter](https://github.com/spacelift-io/prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Spacelift Exporter](https://github.com/spacelift-io/prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Spacelift", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Speedify CLI", "link": "https://github.com/willshen/speedify_exporter", "icon_filename": "speedify.png", "categories": ["data-collection.vpns"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Speedify CLI\n\n## Overview\n\nTrack Speedify VPN metrics for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Speedify Exporter](https://github.com/willshen/speedify_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Speedify Exporter](https://github.com/willshen/speedify_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Speedify_CLI", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sphinx", "link": "https://github.com/foxdalas/sphinx_exporter", "icon_filename": "sphinx.png", "categories": ["data-collection.search-engines"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sphinx\n\n## Overview\n\nMonitor Sphinx search engine metrics for efficient search and indexing performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sphinx Exporter](https://github.com/foxdalas/sphinx_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sphinx Exporter](https://github.com/foxdalas/sphinx_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sphinx", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Starlink (SpaceX)", "link": "https://github.com/danopstech/starlink_exporter", "icon_filename": "starlink.svg", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Starlink (SpaceX)\n\n## Overview\n\nMonitor SpaceX Starlink satellite internet metrics for efficient internet service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Starlink Exporter (SpaceX)](https://github.com/danopstech/starlink_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Starlink Exporter (SpaceX)](https://github.com/danopstech/starlink_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Starlink_(SpaceX)", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Starwind VSAN VSphere Edition", "link": "https://github.com/evoicefire/starwind-vsan-exporter", "icon_filename": "starwind.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Starwind VSAN VSphere Edition\n\n## Overview\n\nKeep tabs on StarWind Virtual SAN metrics for efficient storage virtualization and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Starwind vSAN Exporter](https://github.com/evoicefire/starwind-vsan-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Starwind vSAN Exporter](https://github.com/evoicefire/starwind-vsan-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Starwind_VSAN_VSphere_Edition", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "StatusPage", "link": "https://github.com/vladvasiliu/statuspage-exporter", "icon_filename": "statuspage.png", "categories": ["data-collection.notifications"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# StatusPage\n\n## Overview\n\nMonitor StatusPage.io incident and status metrics for efficient incident management and communication.\n\n\nMetrics are gathered by periodically sending HTTP requests to [StatusPage Exporter](https://github.com/vladvasiliu/statuspage-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [StatusPage Exporter](https://github.com/vladvasiliu/statuspage-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-StatusPage", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Steam", "link": "https://github.com/armsnyder/a2s-exporter", "icon_filename": "a2s.png", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Steam\n\n## Overview\n\nGain insights into Steam A2S-supported game servers for performance and availability through real-time metric monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [A2S Exporter](https://github.com/armsnyder/a2s-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [A2S Exporter](https://github.com/armsnyder/a2s-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Steam", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Steam (A2S_INFO)", "link": "https://github.com/xperimental/steam-exporter", "icon_filename": "steam.png", "categories": ["data-collection.gaming"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Steam (A2S_INFO)\n\n## Overview\n\nMonitor Valve Steam game server metrics using the A2S_INFO protocol for efficient game server management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Steam Exporter (A2S_INFO)](https://github.com/xperimental/steam-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Steam Exporter (A2S_INFO)](https://github.com/xperimental/steam-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Steam_(A2S_INFO)", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Storidge", "link": "https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md", "icon_filename": "storidge.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Storidge\n\n## Overview\n\nKeep an eye on Storidge storage metrics for efficient storage management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Storidge exporter](https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Storidge exporter](https://github.com/Storidge/cio-user-docs/blob/master/integrations/prometheus.md) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Storidge", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Stream", "link": "https://github.com/carlpett/stream_exporter", "icon_filename": "stream.png", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Stream\n\n## Overview\n\nMonitor streaming metrics for efficient media streaming and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Stream exporter](https://github.com/carlpett/stream_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Stream exporter](https://github.com/carlpett/stream_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Stream", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sunspec Solar Energy", "link": "https://github.com/inosion/prometheus-sunspec-exporter", "icon_filename": "sunspec.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sunspec Solar Energy\n\n## Overview\n\nMonitor SunSpec Alliance solar energy metrics for efficient solar energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sunspec Solar Energy Exporter](https://github.com/inosion/prometheus-sunspec-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sunspec Solar Energy Exporter](https://github.com/inosion/prometheus-sunspec-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sunspec_Solar_Energy", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Suricata", "link": "https://github.com/corelight/suricata_exporter", "icon_filename": "suricata.png", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Suricata\n\n## Overview\n\nKeep an eye on Suricata network intrusion detection and prevention system (IDS/IPS) metrics for efficient network security and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Suricata Exporter](https://github.com/corelight/suricata_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Suricata Exporter](https://github.com/corelight/suricata_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Suricata", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Synology ActiveBackup", "link": "https://github.com/codemonauts/activebackup-prometheus-exporter", "icon_filename": "synology.png", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Synology ActiveBackup\n\n## Overview\n\nTrack Synology Active Backup metrics for efficient backup and data protection management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Synology ActiveBackup Exporter](https://github.com/codemonauts/activebackup-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Synology ActiveBackup Exporter](https://github.com/codemonauts/activebackup-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Synology_ActiveBackup", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Sysload", "link": "https://github.com/egmc/sysload_exporter", "icon_filename": "sysload.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Sysload\n\n## Overview\n\nMonitor system load metrics for efficient system performance and resource management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Sysload Exporter](https://github.com/egmc/sysload_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Sysload Exporter](https://github.com/egmc/sysload_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Sysload", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "T-Rex NVIDIA GPU Miner", "link": "https://github.com/dennisstritzke/trex_exporter", "icon_filename": "trex.png", "categories": ["data-collection.hardware-devices-and-sensors"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# T-Rex NVIDIA GPU Miner\n\n## Overview\n\nMonitor T-Rex NVIDIA GPU miner metrics for efficient cryptocurrency mining and GPU performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [T-Rex NVIDIA GPU Miner Exporter](https://github.com/dennisstritzke/trex_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [T-Rex NVIDIA GPU Miner Exporter](https://github.com/dennisstritzke/trex_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-T-Rex_NVIDIA_GPU_Miner", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "TACACS", "link": "https://github.com/devon-mar/tacacs-exporter", "icon_filename": "tacacs.png", "categories": ["data-collection.authentication-and-authorization"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# TACACS\n\n## Overview\n\nTrack Terminal Access Controller Access-Control System (TACACS) protocol metrics for efficient network authentication and authorization management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TACACS Exporter](https://github.com/devon-mar/tacacs-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TACACS Exporter](https://github.com/devon-mar/tacacs-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-TACACS", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "TP-Link P110", "link": "https://github.com/ijohanne/prometheus-tplink-p110-exporter", "icon_filename": "tplink.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# TP-Link P110\n\n## Overview\n\nTrack TP-Link P110 smart plug metrics for efficient energy management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TP-Link P110 Exporter](https://github.com/ijohanne/prometheus-tplink-p110-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TP-Link P110 Exporter](https://github.com/ijohanne/prometheus-tplink-p110-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-TP-Link_P110", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Tado smart heating solution", "link": "https://github.com/eko/tado-exporter", "icon_filename": "tado.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Tado smart heating solution\n\n## Overview\n\nMonitor Tado smart thermostat metrics for efficient home heating and cooling management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tado\\xB0 Exporter](https://github.com/eko/tado-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tado Exporter](https://github.com/eko/tado-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Tado_smart_heating_solution", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Tankerkoenig API", "link": "https://github.com/lukasmalkmus/tankerkoenig_exporter", "icon_filename": "tanker.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Tankerkoenig API\n\n## Overview\n\nTrack Tankerknig API fuel price metrics for efficient fuel price monitoring and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tankerknig API Exporter](https://github.com/lukasmalkmus/tankerkoenig_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tankerknig API Exporter](https://github.com/lukasmalkmus/tankerkoenig_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Tankerkoenig_API", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Tesla Powerwall", "link": "https://github.com/foogod/powerwall_exporter", "icon_filename": "tesla.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Tesla Powerwall\n\n## Overview\n\nMonitor Tesla Powerwall metrics for efficient home energy storage and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla Powerwall Exporter](https://github.com/foogod/powerwall_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla Powerwall Exporter](https://github.com/foogod/powerwall_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Tesla_Powerwall", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Tesla Wall Connector", "link": "https://github.com/benclapp/tesla_wall_connector_exporter", "icon_filename": "tesla.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Tesla Wall Connector\n\n## Overview\n\nMonitor Tesla Wall Connector charging station metrics for efficient electric vehicle charging management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla Wall Connector Exporter](https://github.com/benclapp/tesla_wall_connector_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla Wall Connector Exporter](https://github.com/benclapp/tesla_wall_connector_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Tesla_Wall_Connector", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Tesla vehicle", "link": "https://github.com/wywywywy/tesla-prometheus-exporter", "icon_filename": "tesla.png", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Tesla vehicle\n\n## Overview\n\nTrack Tesla vehicle metrics for efficient electric vehicle management and monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Tesla exporter](https://github.com/wywywywy/tesla-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Tesla exporter](https://github.com/wywywywy/tesla-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Tesla_vehicle", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Traceroute", "link": "https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter", "icon_filename": "traceroute.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Traceroute\n\n## Overview\n\nExport traceroute metrics for efficient network path analysis and performance monitoring.\n\n\nMetrics are gathered by periodically sending HTTP requests to [traceroute exporter](https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [traceroute exporter](https://github.com/jeanfabrice/prometheus-tcptraceroute-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Traceroute", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "TwinCAT ADS Web Service", "link": "https://github.com/MarcusCalidus/twincat-ads-webservice-exporter", "icon_filename": "twincat.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# TwinCAT ADS Web Service\n\n## Overview\n\nMonitor TwinCAT ADS (Automation Device Specification) Web Service metrics for efficient industrial automation and control.\n\n\nMetrics are gathered by periodically sending HTTP requests to [TwinCAT ADS Web Service exporter](https://github.com/MarcusCalidus/twincat-ads-webservice-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [TwinCAT ADS Web Service exporter](https://github.com/MarcusCalidus/twincat-ads-webservice-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-TwinCAT_ADS_Web_Service", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Twitch", "link": "https://github.com/damoun/twitch_exporter", "icon_filename": "twitch.svg", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Twitch\n\n## Overview\n\nTrack Twitch streaming platform metrics for efficient live streaming management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Twitch exporter](https://github.com/damoun/twitch_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Twitch exporter](https://github.com/damoun/twitch_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Twitch", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Ubiquiti UFiber OLT", "link": "https://github.com/swoga/ufiber-exporter", "icon_filename": "ubiquiti.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Ubiquiti UFiber OLT\n\n## Overview\n\nTrack Ubiquiti UFiber GPON (Gigabit Passive Optical Network) device metrics for efficient fiber-optic network management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [ufiber-exporter](https://github.com/swoga/ufiber-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [ufiber-exporter](https://github.com/swoga/ufiber-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Ubiquiti_UFiber_OLT", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Uptimerobot", "link": "https://github.com/wosc/prometheus-uptimerobot", "icon_filename": "uptimerobot.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Uptimerobot\n\n## Overview\n\nMonitor UptimeRobot website uptime monitoring metrics for efficient website availability tracking and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Uptimerobot Exporter](https://github.com/wosc/prometheus-uptimerobot).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Uptimerobot Exporter](https://github.com/wosc/prometheus-uptimerobot) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Uptimerobot", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "VMWare", "link": "https://github.com/pryorda/vmware_exporter", "icon_filename": "vmware.svg", "categories": ["data-collection.containers-and-vms"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# VMWare\n\n## Overview\n\nKeep tabs on VMWare virtualization platform metrics for efficient virtual infrastructure management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [VMWare exporter](https://github.com/pryorda/vmware_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [VMWare exporter](https://github.com/pryorda/vmware_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-VMWare", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "VSCode", "link": "https://github.com/guicaulada/vscode-exporter", "icon_filename": "vscode.svg", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# VSCode\n\n## Overview\n\nTrack Visual Studio Code editor metrics for efficient development environment management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [VSCode Exporter](https://github.com/guicaulada/vscode-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [VSCode Exporter](https://github.com/guicaulada/vscode-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-VSCode", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Vault PKI", "link": "https://github.com/aarnaud/vault-pki-exporter", "icon_filename": "vault.svg", "categories": ["data-collection.security-systems"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Vault PKI\n\n## Overview\n\nMonitor HashiCorp Vault Public Key Infrastructure (PKI) metrics for efficient certificate management and security.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Vault PKI Exporter](https://github.com/aarnaud/vault-pki-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Vault PKI Exporter](https://github.com/aarnaud/vault-pki-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Vault_PKI", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Vertica", "link": "https://github.com/vertica/vertica-prometheus-exporter", "icon_filename": "vertica.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Vertica\n\n## Overview\n\nMonitor Vertica analytics database platform metrics for efficient database performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [vertica-prometheus-exporter](https://github.com/vertica/vertica-prometheus-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [vertica-prometheus-exporter](https://github.com/vertica/vertica-prometheus-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Vertica", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Warp10", "link": "https://github.com/centreon/warp10-sensision-exporter", "icon_filename": "warp10.svg", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Warp10\n\n## Overview\n\nMonitor Warp 10 time-series database metrics for efficient time-series data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Warp10 Exporter](https://github.com/centreon/warp10-sensision-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Warp10 Exporter](https://github.com/centreon/warp10-sensision-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Warp10", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "XMPP Server", "link": "https://github.com/horazont/xmpp-blackbox-exporter", "icon_filename": "xmpp.svg", "categories": ["data-collection.message-brokers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# XMPP Server\n\n## Overview\n\nMonitor XMPP (Extensible Messaging and Presence Protocol) server metrics for efficient messaging and communication management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [XMPP Server Exporter](https://github.com/horazont/xmpp-blackbox-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [XMPP Server Exporter](https://github.com/horazont/xmpp-blackbox-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-XMPP_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Xiaomi Mi Flora", "link": "https://github.com/xperimental/flowercare-exporter", "icon_filename": "xiaomi.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Xiaomi Mi Flora\n\n## Overview\n\nKeep tabs on MiFlora plant monitor metrics for efficient plant care and growth management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [MiFlora / Flower Care Exporter](https://github.com/xperimental/flowercare-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [MiFlora / Flower Care Exporter](https://github.com/xperimental/flowercare-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Xiaomi_Mi_Flora", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "YOURLS URL Shortener", "link": "https://github.com/just1not2/prometheus-exporter-yourls", "icon_filename": "yourls.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# YOURLS URL Shortener\n\n## Overview\n\nMonitor YOURLS (Your Own URL Shortener) metrics for efficient URL shortening service management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [YOURLS exporter](https://github.com/just1not2/prometheus-exporter-yourls).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [YOURLS exporter](https://github.com/just1not2/prometheus-exporter-yourls) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-YOURLS_URL_Shortener", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Zerto", "link": "https://github.com/claranet/zerto-exporter", "icon_filename": "zerto.png", "categories": ["data-collection.cloud-provider-managed"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Zerto\n\n## Overview\n\nMonitor Zerto disaster recovery and data protection metrics for efficient backup and recovery management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zerto Exporter](https://github.com/claranet/zerto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zerto Exporter](https://github.com/claranet/zerto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Zerto", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Zulip", "link": "https://github.com/brokenpip3/zulip-exporter", "icon_filename": "zulip.png", "categories": ["data-collection.media-streaming-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Zulip\n\n## Overview\n\nMonitor Zulip open-source group chat application metrics for efficient team communication management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zulip Exporter](https://github.com/brokenpip3/zulip-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zulip Exporter](https://github.com/brokenpip3/zulip-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Zulip", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "Zyxel GS1200-8", "link": "https://github.com/robinelfrink/gs1200-exporter", "icon_filename": "zyxel.png", "categories": ["data-collection.networking-stack-and-network-interfaces"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# Zyxel GS1200-8\n\n## Overview\n\nTrack Zyxel GS1200 network switch metrics for efficient network device management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [Zyxel GS1200 Exporter](https://github.com/robinelfrink/gs1200-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [Zyxel GS1200 Exporter](https://github.com/robinelfrink/gs1200-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-Zyxel_GS1200-8", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "bpftrace variables", "link": "https://github.com/andreasgerstmayr/bpftrace_exporter", "icon_filename": "bpftrace.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# bpftrace variables\n\n## Overview\n\nTrack bpftrace metrics for advanced performance analysis and troubleshooting.\n\n\nMetrics are gathered by periodically sending HTTP requests to [bpftrace exporter](https://github.com/andreasgerstmayr/bpftrace_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [bpftrace exporter](https://github.com/andreasgerstmayr/bpftrace_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-bpftrace_variables", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "cAdvisor", "link": "https://github.com/google/cadvisor", "icon_filename": "cadvisor.png", "categories": ["data-collection.containers-and-vms"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# cAdvisor\n\n## Overview\n\nMonitor container resource usage and performance metrics with cAdvisor for efficient container management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [cAdvisor](https://github.com/google/cadvisor).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [cAdvisor](https://github.com/google/cadvisor) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-cAdvisor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "etcd", "link": "https://etcd.io/", "icon_filename": "etcd.svg", "categories": ["data-collection.service-discovery-registry"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# etcd\n\n## Overview\n\nTrack etcd database metrics for optimized distributed key-value store management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to etcd built-in Prometheus exporter.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-etcd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "gpsd", "link": "https://github.com/natesales/gpsd-exporter", "icon_filename": "gpsd.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# gpsd\n\n## Overview\n\nMonitor GPSD (GPS daemon) metrics for efficient GPS data management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [gpsd exporter](https://github.com/natesales/gpsd-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [gpsd exporter](https://github.com/natesales/gpsd-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-gpsd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "iqAir AirVisual air quality monitors", "link": "https://github.com/Packetslave/iqair_exporter", "icon_filename": "iqair.svg", "categories": ["data-collection.iot-devices"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# iqAir AirVisual air quality monitors\n\n## Overview\n\nMonitor air quality data from IQAir devices for efficient environmental monitoring and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [IQair Exporter](https://github.com/Packetslave/iqair_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [IQair Exporter](https://github.com/Packetslave/iqair_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-iqAir_AirVisual_air_quality_monitors", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "jolokia", "link": "https://github.com/aklinkert/jolokia_exporter", "icon_filename": "jolokia.png", "categories": ["data-collection.apm"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# jolokia\n\n## Overview\n\nMonitor Jolokia JVM metrics for optimized Java application performance and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [jolokia_exporter](https://github.com/aklinkert/jolokia_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [jolokia_exporter](https://github.com/aklinkert/jolokia_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-jolokia", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "journald", "link": "https://github.com/dead-claudia/journald-exporter", "icon_filename": "linux.png", "categories": ["data-collection.logs-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# journald\n\n## Overview\n\nKeep an eye on systemd-journald metrics for efficient log management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [journald-exporter](https://github.com/dead-claudia/journald-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [journald-exporter](https://github.com/dead-claudia/journald-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-journald", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "loki", "link": "https://github.com/ricoberger/loki_exporter", "icon_filename": "loki.png", "categories": ["data-collection.logs-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# loki\n\n## Overview\n\nTrack Loki log aggregation metrics for efficient log management and analysis.\n\n\nMetrics are gathered by periodically sending HTTP requests to [loki_exporter](https://github.com/ricoberger/loki_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [loki_exporter](https://github.com/ricoberger/loki_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-loki", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "mosquitto", "link": "https://github.com/sapcc/mosquitto-exporter", "icon_filename": "mosquitto.svg", "categories": ["data-collection.message-brokers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# mosquitto\n\n## Overview\n\nKeep an eye on Mosquitto MQTT broker metrics for efficient IoT message transport and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mosquitto exporter](https://github.com/sapcc/mosquitto-exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mosquitto exporter](https://github.com/sapcc/mosquitto-exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-mosquitto", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "mtail", "link": "https://github.com/google/mtail", "icon_filename": "mtail.png", "categories": ["data-collection.logs-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# mtail\n\n## Overview\n\nMonitor log data metrics using mtail log data extractor and parser.\n\n\nMetrics are gathered by periodically sending HTTP requests to [mtail](https://github.com/google/mtail).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [mtail](https://github.com/google/mtail) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-mtail", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "nftables", "link": "https://github.com/Sheridan/nftables_exporter", "icon_filename": "nftables.png", "categories": ["data-collection.linux-systems.firewall-metrics"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# nftables\n\n## Overview\n\nMonitor nftables firewall metrics for efficient network security and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [nftables_exporter](https://github.com/Sheridan/nftables_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [nftables_exporter](https://github.com/Sheridan/nftables_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-nftables", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "pgBackRest", "link": "https://github.com/woblerr/pgbackrest_exporter", "icon_filename": "pgbackrest.png", "categories": ["data-collection.database-servers"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# pgBackRest\n\n## Overview\n\nMonitor pgBackRest PostgreSQL backup metrics for efficient database backup and management.\n\n\nMetrics are gathered by periodically sending HTTP requests to [pgBackRest Exporter](https://github.com/woblerr/pgbackrest_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [pgBackRest Exporter](https://github.com/woblerr/pgbackrest_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-pgBackRest", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"module_name": "prometheus", "plugin_name": "go.d.plugin", "monitored_instance": {"name": "strongSwan", "link": "https://github.com/jlti-dev/ipsec_exporter", "icon_filename": "strongswan.svg", "categories": ["data-collection.vpns"]}, "keywords": [], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false, "community": true}, "overview": "# strongSwan\n\n## Overview\n\nTrack strongSwan VPN and IPSec metrics using the vici interface for efficient virtual private network (VPN) management and performance.\n\n\nMetrics are gathered by periodically sending HTTP requests to [strongSwan/IPSec/vici Exporter](https://github.com/jlti-dev/ipsec_exporter).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on the local host by trying to connect to known ports that are [allocated to exporters](https://github.com/prometheus/prometheus/wiki/Default-port-allocations).\nThe full list of endpoints is available in the collector's [configuration file](https://github.com/netdata/go.d.plugin/blob/master/config/go.d/prometheus.conf).\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Exporter\n\nInstall [strongSwan/IPSec/vici Exporter](https://github.com/jlti-dev/ipsec_exporter) by following the instructions mentioned in the exporter README.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/prometheus.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/prometheus.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| selector | Time series selector (filter). | | False |\n| fallback_type | Time series selector (filter). | | False |\n| max_time_series | Global time series limit. If an endpoint returns number of time series > limit the data is not processed. | | False |\n| max_time_series_per_metric | Time series per metric (metric name) limit. Metrics with number of time series > limit are skipped. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### selector\n\nThis option allows you to filter out unwanted time series. Only metrics matching the selector will be collected.\n\n- Logic: (pattern1 OR pattern2) AND !(pattern3 or pattern4)\n- Pattern syntax: [selector](https://github.com/netdata/go.d.plugin/pkg/prometheus/selector#time-series-selectors).\n- Option syntax:\n\n```yaml\nselector:\n allow:\n - pattern1\n - pattern2\n deny:\n - pattern3\n - pattern4\n```\n\n\n##### fallback_type\n\nThis option allows you to process Untyped metrics as Counter or Gauge instead of ignoring them.\n\n- Metric name pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match).\n- Option syntax:\n\n```yaml\nfallback_type:\n counter:\n - metric_name_pattern1\n - metric_name_pattern2\n gauge:\n - metric_name_pattern3\n - metric_name_pattern4\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nA basic example configuration.\n\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n```\n##### HTTP authentication\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nBasic HTTP authentication.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:9090/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n> **Note**: Change the port of the monitored application on which it provides metrics.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:9090/metrics\n\n - name: remote\n url: http://192.0.2.1:9090/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `prometheus` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m prometheus\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThis collector has built-in grouping logic based on the [type of metrics](https://prometheus.io/docs/concepts/metric_types/).\n\n| Metric | Chart | Dimension(s) | Algorithm |\n|---------------------------|-------------------------------------------|----------------------|-------------|\n| Gauge | for each label set | one, the metric name | absolute |\n| Counter | for each label set | one, the metric name | incremental |\n| Summary (quantiles) | for each label set (excluding 'quantile') | for each quantile | absolute |\n| Summary (sum and count) | for each label set | the metric name | incremental |\n| Histogram (buckets) | for each label set (excluding 'le') | for each bucket | incremental |\n| Histogram (sum and count) | for each label set | the metric name | incremental |\n\nUntyped metrics (have no '# TYPE') processing:\n\n- As Counter or Gauge depending on pattern match when 'fallback_type' is used.\n- As Counter if it has suffix '_total'.\n- As Summary if it has 'quantile' label.\n- As Histogram if it has 'le' label.\n\n**The rest are ignored**.\n\n", "integration_type": "collector", "id": "go.d.plugin-prometheus-strongSwan", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/prometheus/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "proxysql", "monitored_instance": {"name": "ProxySQL", "link": "https://www.proxysql.com/", "icon_filename": "proxysql.png", "categories": ["data-collection.database-servers"]}, "keywords": ["proxysql", "databases", "sql"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# ProxySQL\n\n## Overview\n\nThis collector monitors ProxySQL servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/proxysql.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/proxysql.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| dsn | Data Source Name. See [DSN syntax](https://github.com/go-sql-driver/mysql#dsn-data-source-name). | | True |\n| my.cnf | Specifies my.cnf file to read connection parameters from under the [client] section. | | False |\n| timeout | Query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: stats:stats@tcp(127.0.0.1:6032)/\n\n```\n{% /details %}\n##### my.cnf\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n my.cnf: '/etc/my.cnf'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n dsn: stats:stats@tcp(127.0.0.1:6032)/\n\n - name: remote\n dsn: stats:stats@tcp(203.0.113.0:6032)/\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `proxysql` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m proxysql\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ProxySQL instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.client_connections_count | connected, non_idle, hostgroup_locked | connections |\n| proxysql.client_connections_rate | created, aborted | connections/s |\n| proxysql.server_connections_count | connected | connections |\n| proxysql.server_connections_rate | created, aborted, delayed | connections/s |\n| proxysql.backends_traffic | recv, sent | B/s |\n| proxysql.clients_traffic | recv, sent | B/s |\n| proxysql.active_transactions_count | client | connections |\n| proxysql.questions_rate | questions | questions/s |\n| proxysql.slow_queries_rate | slow | queries/s |\n| proxysql.queries_rate | autocommit, autocommit_filtered, commit_filtered, rollback, rollback_filtered, backend_change_user, backend_init_db, backend_set_names, frontend_init_db, frontend_set_names, frontend_use_db | queries/s |\n| proxysql.backend_statements_count | total, unique | statements |\n| proxysql.backend_statements_rate | prepare, execute, close | statements/s |\n| proxysql.client_statements_count | total, unique | statements |\n| proxysql.client_statements_rate | prepare, execute, close | statements/s |\n| proxysql.cached_statements_count | cached | statements |\n| proxysql.query_cache_entries_count | entries | entries |\n| proxysql.query_cache_memory_used | used | B |\n| proxysql.query_cache_io | in, out | B/s |\n| proxysql.query_cache_requests_rate | read, write, read_success | requests/s |\n| proxysql.mysql_monitor_workers_count | workers, auxiliary | threads |\n| proxysql.mysql_monitor_workers_rate | started | workers/s |\n| proxysql.mysql_monitor_connect_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_ping_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_read_only_checks_rate | succeed, failed | checks/s |\n| proxysql.mysql_monitor_replication_lag_checks_rate | succeed, failed | checks/s |\n| proxysql.jemalloc_memory_used | active, allocated, mapped, metadata, resident, retained | B |\n| proxysql.memory_used | auth, sqlite3, query_digest, query_rules, firewall_users_table, firewall_users_config, firewall_rules_table, firewall_rules_config, mysql_threads, admin_threads, cluster_threads | B |\n| proxysql.uptime | uptime | seconds |\n\n### Per command\n\nThese metrics refer to the SQL command.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| command | SQL command. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.mysql_command_execution_rate | uptime | seconds |\n| proxysql.mysql_command_execution_time | time | microseconds |\n| proxysql.mysql_command_execution_duration | 100us, 500us, 1ms, 5ms, 10ms, 50ms, 100ms, 500ms, 1s, 5s, 10s, +Inf | microseconds |\n\n### Per user\n\nThese metrics refer to the user.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| user | username from the mysql_users table |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.mysql_user_connections_utilization | used | percentage |\n| proxysql.mysql_user_connections_count | used | connections |\n\n### Per backend\n\nThese metrics refer to the backend server.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| host | backend server host |\n| port | backend server port |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| proxysql.backend_status | online, shunned, offline_soft, offline_hard | status |\n| proxysql.backend_connections_usage | free, used | connections |\n| proxysql.backend_connections_rate | succeed, failed | connections/s |\n| proxysql.backend_queries_rate | queries | queries/s |\n| proxysql.backend_traffic | recv, send | B/s |\n| proxysql.backend_latency | latency | microseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-proxysql-ProxySQL", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/proxysql/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "pulsar", "monitored_instance": {"name": "Apache Pulsar", "link": "https://pulsar.apache.org/", "icon_filename": "pulsar.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["pulsar"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Apache Pulsar\n\n## Overview\n\nThis collector monitors Pulsar servers.\n\n\nIt collects broker statistics using Pulsar's [Prometheus endpoint](https://pulsar.apache.org/docs/en/deploy-monitoring/#broker-stats).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects Pulsar instances running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/pulsar.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/pulsar.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/metrics\n\n - name: remote\n url: http://192.0.2.1:8080/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pulsar` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m pulsar\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n- topic_* metrics are available when `exposeTopicLevelMetricsInPrometheus` is set to true.\n- subscription_* and namespace_subscription metrics are available when `exposeTopicLevelMetricsInPrometheus` si set to true.\n- replication_* and namespace_replication_* metrics are available when replication is configured and `replicationMetricsEnabled` is set to true.\n\n\n### Per Apache Pulsar instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pulsar.broker_components | namespaces, topics, subscriptions, producers, consumers | components |\n| pulsar.messages_rate | publish, dispatch | messages/s |\n| pulsar.throughput_rate | publish, dispatch | KiB/s |\n| pulsar.storage_size | used | KiB |\n| pulsar.storage_operations_rate | read, write | message batches/s |\n| pulsar.msg_backlog | backlog | messages |\n| pulsar.storage_write_latency | <=0.5ms, <=1ms, <=5ms, =10ms, <=20ms, <=50ms, <=100ms, <=200ms, <=1s, >1s | entries/s |\n| pulsar.entry_size | <=128B, <=512B, <=1KB, <=2KB, <=4KB, <=16KB, <=100KB, <=1MB, >1MB | entries/s |\n| pulsar.subscription_delayed | delayed | message batches |\n| pulsar.subscription_msg_rate_redeliver | redelivered | messages/s |\n| pulsar.subscription_blocked_on_unacked_messages | blocked | subscriptions |\n| pulsar.replication_rate | in, out | messages/s |\n| pulsar.replication_throughput_rate | in, out | KiB/s |\n| pulsar.replication_backlog | backlog | messages |\n\n### Per namespace\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| pulsar.namespace_broker_components | topics, subscriptions, producers, consumers | components |\n| pulsar.namespace_messages_rate | publish, dispatch | messages/s |\n| pulsar.namespace_throughput_rate | publish, dispatch | KiB/s |\n| pulsar.namespace_storage_size | used | KiB |\n| pulsar.namespace_storage_operations_rate | read, write | message batches/s |\n| pulsar.namespace_msg_backlog | backlog | messages |\n| pulsar.namespace_storage_write_latency | <=0.5ms, <=1ms, <=5ms, =10ms, <=20ms, <=50ms, <=100ms, <=200ms, <=1s, >1s | entries/s |\n| pulsar.namespace_entry_size | <=128B, <=512B, <=1KB, <=2KB, <=4KB, <=16KB, <=100KB, <=1MB, >1MB | entries/s |\n| pulsar.namespace_subscription_delayed | delayed | message batches |\n| pulsar.namespace_subscription_msg_rate_redeliver | redelivered | messages/s |\n| pulsar.namespace_subscription_blocked_on_unacked_messages | blocked | subscriptions |\n| pulsar.namespace_replication_rate | in, out | messages/s |\n| pulsar.namespace_replication_throughput_rate | in, out | KiB/s |\n| pulsar.namespace_replication_backlog | backlog | messages |\n| pulsar.topic_producers | a dimension per topic | producers |\n| pulsar.topic_subscriptions | a dimension per topic | subscriptions |\n| pulsar.topic_consumers | a dimension per topic | consumers |\n| pulsar.topic_messages_rate_in | a dimension per topic | publishes/s |\n| pulsar.topic_messages_rate_out | a dimension per topic | dispatches/s |\n| pulsar.topic_throughput_rate_in | a dimension per topic | KiB/s |\n| pulsar.topic_throughput_rate_out | a dimension per topic | KiB/s |\n| pulsar.topic_storage_size | a dimension per topic | KiB |\n| pulsar.topic_storage_read_rate | a dimension per topic | message batches/s |\n| pulsar.topic_storage_write_rate | a dimension per topic | message batches/s |\n| pulsar.topic_msg_backlog | a dimension per topic | messages |\n| pulsar.topic_subscription_delayed | a dimension per topic | message batches |\n| pulsar.topic_subscription_msg_rate_redeliver | a dimension per topic | messages/s |\n| pulsar.topic_subscription_blocked_on_unacked_messages | a dimension per topic | blocked subscriptions |\n| pulsar.topic_replication_rate_in | a dimension per topic | messages/s |\n| pulsar.topic_replication_rate_out | a dimension per topic | messages/s |\n| pulsar.topic_replication_throughput_rate_in | a dimension per topic | messages/s |\n| pulsar.topic_replication_throughput_rate_out | a dimension per topic | messages/s |\n| pulsar.topic_replication_backlog | a dimension per topic | messages |\n\n", "integration_type": "collector", "id": "go.d.plugin-pulsar-Apache_Pulsar", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/pulsar/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "rabbitmq", "monitored_instance": {"name": "RabbitMQ", "link": "https://www.rabbitmq.com/", "icon_filename": "rabbitmq.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["rabbitmq", "message brokers"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# RabbitMQ\n\n## Overview\n\nThis collector monitors RabbitMQ instances.\n\nIt collects data using an HTTP-based API provided by the [management plugin](https://www.rabbitmq.com/management.html).\nThe following endpoints are used:\n\n- `/api/overview`\n- `/api/node/{node_name}`\n- `/api/vhosts`\n- `/api/queues` (disabled by default)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable management plugin.\n\nThe management plugin is included in the RabbitMQ distribution, but disabled.\nTo enable see [Management Plugin](https://www.rabbitmq.com/management.html#getting-started) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/rabbitmq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/rabbitmq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| collect_queues_metrics | Collect stats per vhost per queues. Enabling this can introduce serious overhead on both Netdata and RabbitMQ if many queues are configured and used. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n username: admin\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:15672\n\n - name: remote\n url: http://192.0.2.0:15672\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `rabbitmq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m rabbitmq\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RabbitMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.messages_count | ready, unacknowledged | messages |\n| rabbitmq.messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n| rabbitmq.objects_count | channels, consumers, connections, queues, exchanges | messages |\n| rabbitmq.connection_churn_rate | created, closed | operations/s |\n| rabbitmq.channel_churn_rate | created, closed | operations/s |\n| rabbitmq.queue_churn_rate | created, deleted, declared | operations/s |\n| rabbitmq.file_descriptors_count | available, used | fd |\n| rabbitmq.sockets_count | available, used | sockets |\n| rabbitmq.erlang_processes_count | available, used | processes |\n| rabbitmq.erlang_run_queue_processes_count | length | processes |\n| rabbitmq.memory_usage | used | bytes |\n| rabbitmq.disk_space_free_size | free | bytes |\n\n### Per vhost\n\nThese metrics refer to the virtual host.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vhost | virtual host name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.vhost_messages_count | ready, unacknowledged | messages |\n| rabbitmq.vhost_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n\n### Per queue\n\nThese metrics refer to the virtual host queue.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vhost | virtual host name |\n| queue | queue name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rabbitmq.queue_messages_count | ready, unacknowledged, paged_out, persistent | messages |\n| rabbitmq.queue_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-rabbitmq-RabbitMQ", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/rabbitmq/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "redis", "monitored_instance": {"name": "Redis", "link": "https://redis.com/", "categories": ["data-collection.database-servers"], "icon_filename": "redis.svg"}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}, {"plugin_name": "cgroups.plugin", "module_name": "cgroups"}]}}, "alternative_monitored_instances": [], "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["redis", "databases"], "most_popular": true}, "overview": "# Redis\n\n## Overview\n\nThis collector monitors the health and performance of Redis servers and collects general statistics, CPU and memory consumption, replication information, command statistics, and more.\n\n\nIt connects to the Redis instance via a TCP or UNIX socket and executes the following commands:\n\n- [INFO ALL](https://redis.io/commands/info)\n- [PING](https://redis.io/commands/ping/)\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect using known Redis TCP and UNIX sockets:\n\n- 127.0.0.1:6379\n- /tmp/redis.sock\n- /var/run/redis/redis.sock\n- /var/lib/redis/redis.sock\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/redis.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/redis.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Redis server address. | | True |\n| timeout | Dial (establishing new connections), read (socket reads) and write (socket writes) timeout in seconds. | | False |\n| username | Username used for authentication. | | False |\n| password | Password used for authentication. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### TCP socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://@127.0.0.1:6379'\n\n```\n{% /details %}\n##### Unix socket\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'unix://@/tmp/redis.sock'\n\n```\n{% /details %}\n##### TCP socket with password\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:6379'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 'redis://:password@127.0.0.1:6379'\n\n - name: remote\n address: 'redis://user:password@203.0.113.0:6379'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `redis` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m redis\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ redis_connections_rejected ](https://github.com/netdata/netdata/blob/master/health/health.d/redis.conf) | redis.connections | connections rejected because of maxclients limit in the last minute |\n| [ redis_bgsave_slow ](https://github.com/netdata/netdata/blob/master/health/health.d/redis.conf) | redis.bgsave_now | duration of the on-going RDB save operation |\n| [ redis_bgsave_broken ](https://github.com/netdata/netdata/blob/master/health/health.d/redis.conf) | redis.bgsave_health | status of the last RDB save operation (0: ok, 1: error) |\n| [ redis_master_link_down ](https://github.com/netdata/netdata/blob/master/health/health.d/redis.conf) | redis.master_link_down_since_time | time elapsed since the link between master and slave is down |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Redis instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| redis.connections | accepted, rejected | connections/s |\n| redis.clients | connected, blocked, tracking, in_timeout_table | clients |\n| redis.ping_latency | min, max, avg | seconds |\n| redis.commands | processes | commands/s |\n| redis.keyspace_lookup_hit_rate | lookup_hit_rate | percentage |\n| redis.memory | max, used, rss, peak, dataset, lua, scripts | bytes |\n| redis.mem_fragmentation_ratio | mem_fragmentation | ratio |\n| redis.key_eviction_events | evicted | keys/s |\n| redis.net | received, sent | kilobits/s |\n| redis.rdb_changes | changes | operations |\n| redis.bgsave_now | current_bgsave_time | seconds |\n| redis.bgsave_health | last_bgsave | status |\n| redis.bgsave_last_rdb_save_since_time | last_bgsave_time | seconds |\n| redis.aof_file_size | current, base | bytes |\n| redis.commands_calls | a dimension per command | calls |\n| redis.commands_usec | a dimension per command | microseconds |\n| redis.commands_usec_per_sec | a dimension per command | microseconds/s |\n| redis.key_expiration_events | expired | keys/s |\n| redis.database_keys | a dimension per database | keys |\n| redis.database_expires_keys | a dimension per database | keys |\n| redis.connected_replicas | connected | replicas |\n| redis.master_link_status | up, down | status |\n| redis.master_last_io_since_time | time | seconds |\n| redis.master_link_down_since_time | time | seconds |\n| redis.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-redis-Redis", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/redis/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "scaleio", "monitored_instance": {"name": "Dell EMC ScaleIO", "link": "https://www.dell.com/en-ca/dt/storage/scaleio/scaleioreadynode.htm", "icon_filename": "dell.svg", "categories": ["data-collection.storage-mount-points-and-filesystems"]}, "keywords": ["scaleio"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Dell EMC ScaleIO\n\n## Overview\n\nThis collector monitors ScaleIO (VxFlex OS) instances via VxFlex OS Gateway API.\n\nIt collects metrics for the following ScaleIO components:\n\n- System\n- Storage Pool\n- Sdc\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/scaleio.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/scaleio.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | True |\n| password | Password for basic HTTP authentication. | | True |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n username: admin\n password: password\n tls_skip_verify: yes # self-signed certificate\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instance.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1\n username: admin\n password: password\n tls_skip_verify: yes # self-signed certificate\n\n - name: remote\n url: https://203.0.113.10\n username: admin\n password: password\n tls_skip_verify: yes\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `scaleio` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m scaleio\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dell EMC ScaleIO instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.system_capacity_total | total | KiB |\n| scaleio.system_capacity_in_use | in_use | KiB |\n| scaleio.system_capacity_usage | thick, decreased, thin, snapshot, spare, unused | KiB |\n| scaleio.system_capacity_available_volume_allocation | available | KiB |\n| scaleio.system_capacity_health_state | protected, degraded, in_maintenance, failed, unavailable | KiB |\n| scaleio.system_workload_primary_bandwidth_total | total | KiB/s |\n| scaleio.system_workload_primary_bandwidth | read, write | KiB/s |\n| scaleio.system_workload_primary_iops_total | total | iops/s |\n| scaleio.system_workload_primary_iops | read, write | iops/s |\n| scaleio.system_workload_primary_io_size_total | io_size | KiB |\n| scaleio.system_rebalance | read, write | KiB/s |\n| scaleio.system_rebalance_left | left | KiB |\n| scaleio.system_rebalance_time_until_finish | time | seconds |\n| scaleio.system_rebuild | read, write | KiB/s |\n| scaleio.system_rebuild_left | left | KiB |\n| scaleio.system_defined_components | devices, fault_sets, protection_domains, rfcache_devices, sdc, sds, snapshots, storage_pools, volumes, vtrees | components |\n| scaleio.system_components_volumes_by_type | thick, thin | volumes |\n| scaleio.system_components_volumes_by_mapping | mapped, unmapped | volumes |\n\n### Per storage pool\n\nThese metrics refer to the storage pool.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.storage_pool_capacity_total | total | KiB |\n| scaleio.storage_pool_capacity_in_use | in_use | KiB |\n| scaleio.storage_pool_capacity_usage | thick, decreased, thin, snapshot, spare, unused | KiB |\n| scaleio.storage_pool_capacity_utilization | used | percentage |\n| scaleio.storage_pool_capacity_available_volume_allocation | available | KiB |\n| scaleio.storage_pool_capacity_health_state | protected, degraded, in_maintenance, failed, unavailable | KiB |\n| scaleio.storage_pool_components | devices, snapshots, volumes, vtrees | components |\n\n### Per sdc\n\nThese metrics refer to the SDC (ScaleIO Data Client).\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| scaleio.sdc_mdm_connection_state | connected | boolean |\n| scaleio.sdc_bandwidth | read, write | KiB/s |\n| scaleio.sdc_iops | read, write | iops/s |\n| scaleio.sdc_io_size | read, write | KiB |\n| scaleio.sdc_num_of_mapped_volumed | mapped | volumes |\n\n", "integration_type": "collector", "id": "go.d.plugin-scaleio-Dell_EMC_ScaleIO", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/scaleio/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "snmp", "monitored_instance": {"name": "SNMP devices", "link": "", "icon_filename": "snmp.png", "categories": ["data-collection.generic-data-collection"]}, "keywords": ["snmp"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# SNMP devices\n\n## Overview\n\nThis collector monitors any SNMP devices and uses the [gosnmp](https://github.com/gosnmp/gosnmp) package.\n\nIt supports:\n\n- all SNMP versions: SNMPv1, SNMPv2c and SNMPv3.\n- any number of SNMP devices.\n- each SNMP device can be used to collect data for any number of charts.\n- each chart may have any number of dimensions.\n- each SNMP device may have a different update frequency.\n- each SNMP device will accept one or more batches to report values (you can set `max_request_size` per SNMP server, to control the size of batches).\n\nKeep in mind that many SNMP switches and routers are very slow. They may not be able to report values per second.\n`go.d.plugin` reports the time it took for the SNMP device to respond when executed in the debug mode.\n\nAlso, if many SNMP clients are used on the same SNMP device at the same time, values may be skipped.\nThis is a problem of the SNMP device, not this collector. In this case, consider reducing the frequency of data collection (increasing `update_every`).\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Find OIDs\n\nUse `snmpwalk`, like this:\n\n```sh\nsnmpwalk -t 20 -O fn -v 2c -c public 192.0.2.1\n```\n\n- `-t 20` is the timeout in seconds.\n- `-O fn` will display full OIDs in numeric format.\n- `-v 2c` is the SNMP version.\n- `-c public` is the SNMP community.\n- `192.0.2.1` is the SNMP device.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/snmp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/snmp.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| hostname | Target ipv4 address. | | True |\n| community | SNMPv1/2 community string. | | False |\n| options.version | SNMP version. Available versions: 1, 2, 3. | | False |\n| options.port | Target port. | | False |\n| options.retries | Retries to attempt. | | False |\n| options.timeout | SNMP request/response timeout. | | False |\n| options.max_request_size | Maximum number of OIDs allowed in one one SNMP request. | | False |\n| user.name | SNMPv3 user name. | | False |\n| user.name | Security level of SNMPv3 messages. | | False |\n| user.auth_proto | Security level of SNMPv3 messages. | | False |\n| user.name | Authentication protocol for SNMPv3 messages. | | False |\n| user.auth_key | Authentication protocol pass phrase. | | False |\n| user.priv_proto | Privacy protocol for SNMPv3 messages. | | False |\n| user.priv_key | Privacy protocol pass phrase. | | False |\n| charts | List of charts. | | True |\n| charts.id | Chart ID. Used to uniquely identify the chart. | | True |\n| charts.title | Chart title. | | False |\n| charts.units | Chart units. | | False |\n| charts.family | Chart family. | | False |\n| charts.type | Chart type (line, area, stacked). | | False |\n| charts.priority | Chart priority. | | False |\n| charts.multiply_range | Used when you need to define many charts using incremental OIDs. | | False |\n| charts.dimensions | List of chart dimensions. | | True |\n| charts.dimensions.oid | Collected metric OID. | | True |\n| charts.dimensions.name | Dimension name. | | True |\n| charts.dimensions.algorithm | Dimension algorithm (absolute, incremental). | | False |\n| charts.dimensions.multiplier | Collected value multiplier, applied to convert it properly to units. | | False |\n| charts.dimensions.divisor | Collected value divisor, applied to convert it properly to units. | | False |\n\n##### user.auth_proto\n\nThe security of an SNMPv3 message as per RFC 3414 (`user.level`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|------------------------------------------|\n| none | 1 | no message authentication or encryption |\n| authNoPriv | 2 | message authentication and no encryption |\n| authPriv | 3 | message authentication and encryption |\n\n\n##### user.name\n\nThe digest algorithm for SNMPv3 messages that require authentication (`user.auth_proto`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|-------------------------------------------|\n| none | 1 | no message authentication |\n| md5 | 2 | MD5 message authentication (HMAC-MD5-96) |\n| sha | 3 | SHA message authentication (HMAC-SHA-96) |\n| sha224 | 4 | SHA message authentication (HMAC-SHA-224) |\n| sha256 | 5 | SHA message authentication (HMAC-SHA-256) |\n| sha384 | 6 | SHA message authentication (HMAC-SHA-384) |\n| sha512 | 7 | SHA message authentication (HMAC-SHA-512) |\n\n\n##### user.priv_proto\n\nThe encryption algorithm for SNMPv3 messages that require privacy (`user.priv_proto`):\n\n| String value | Int value | Description |\n|:------------:|:---------:|-------------------------------------------------------------------------|\n| none | 1 | no message encryption |\n| des | 2 | ES encryption (CBC-DES) |\n| aes | 3 | 128-bit AES encryption (CFB-AES-128) |\n| aes192 | 4 | 192-bit AES encryption (CFB-AES-192) with \"Blumenthal\" key localization |\n| aes256 | 5 | 256-bit AES encryption (CFB-AES-256) with \"Blumenthal\" key localization |\n| aes192c | 6 | 192-bit AES encryption (CFB-AES-192) with \"Reeder\" key localization |\n| aes256c | 7 | 256-bit AES encryption (CFB-AES-256) with \"Reeder\" key localization |\n\n\n{% /details %}\n#### Examples\n\n##### SNMPv1/2\n\nIn this example:\n\n- the SNMP device is `192.0.2.1`.\n- the SNMP version is `2`.\n- the SNMP community is `public`.\n- we will update the values every 10 seconds.\n- we define 2 charts `bandwidth_port1` and `bandwidth_port2`, each having 2 dimensions: `in` and `out`.\n\n> **SNMPv1**: just set `options.version` to 1.\n> **Note**: the algorithm chosen is `incremental`, because the collected values show the total number of bytes transferred, which we need to transform into kbps. To chart gauges (e.g. temperature), use `absolute` instead.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: 192.0.2.1\n community: public\n options:\n version: 2\n charts:\n - id: \"bandwidth_port1\"\n title: \"Switch Bandwidth for port 1\"\n units: \"kilobits/s\"\n type: \"area\"\n family: \"ports\"\n dimensions:\n - name: \"in\"\n oid: \"1.3.6.1.2.1.2.2.1.10.1\"\n algorithm: \"incremental\"\n multiplier: 8\n divisor: 1000\n - name: \"out\"\n oid: \"1.3.6.1.2.1.2.2.1.16.1\"\n multiplier: -8\n divisor: 1000\n - id: \"bandwidth_port2\"\n title: \"Switch Bandwidth for port 2\"\n units: \"kilobits/s\"\n type: \"area\"\n family: \"ports\"\n dimensions:\n - name: \"in\"\n oid: \"1.3.6.1.2.1.2.2.1.10.2\"\n algorithm: \"incremental\"\n multiplier: 8\n divisor: 1000\n - name: \"out\"\n oid: \"1.3.6.1.2.1.2.2.1.16.2\"\n multiplier: -8\n divisor: 1000\n\n```\n{% /details %}\n##### SNMPv3\n\nTo use SNMPv3:\n\n- use `user` instead of `community`.\n- set `options.version` to 3.\n\nThe rest of the configuration is the same as in the SNMPv1/2 example.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: 192.0.2.1\n options:\n version: 3\n user:\n name: username\n level: authPriv\n auth_proto: sha256\n auth_key: auth_protocol_passphrase\n priv_proto: aes256\n priv_key: priv_protocol_passphrase\n\n```\n{% /details %}\n##### Multiply range\n\nIf you need to define many charts using incremental OIDs, you can use the `charts.multiply_range` option.\n\nThis is like the SNMPv1/2 example, but the option will multiply the current chart from 1 to 24 inclusive, producing 24 charts in total for the 24 ports of the switch `192.0.2.1`.\n\nEach of the 24 new charts will have its id (1-24) appended at:\n\n- its chart unique `id`, i.e. `bandwidth_port_1` to `bandwidth_port_24`.\n- its title, i.e. `Switch Bandwidth for port 1` to `Switch Bandwidth for port 24`.\n- its `oid` (for all dimensions), i.e. dimension in will be `1.3.6.1.2.1.2.2.1.10.1` to `1.3.6.1.2.1.2.2.1.10.24`.\n- its `priority` will be incremented for each chart so that the charts will appear on the dashboard in this order.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: switch\n update_every: 10\n hostname: \"192.0.2.1\"\n community: public\n options:\n version: 2\n charts:\n - id: \"bandwidth_port\"\n title: \"Switch Bandwidth for port\"\n units: \"kilobits/s\"\n type: \"area\"\n family: \"ports\"\n multiply_range: [1, 24]\n dimensions:\n - name: \"in\"\n oid: \"1.3.6.1.2.1.2.2.1.10\"\n algorithm: \"incremental\"\n multiplier: 8\n divisor: 1000\n - name: \"out\"\n oid: \"1.3.6.1.2.1.2.2.1.16\"\n multiplier: -8\n divisor: 1000\n\n```\n{% /details %}\n##### Multiple devices with a common configuration\n\nYAML supports [anchors](https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases). \nThe `&` defines and names an anchor, and the `*` uses it. `<<: *anchor` means, inject the anchor, then extend. We can use anchors to share the common configuration for multiple devices.\n\nThe following example:\n\n- adds an `anchor` to the first job.\n- injects (copies) the first job configuration to the second and updates `name` and `hostname` parameters.\n- injects (copies) the first job configuration to the third and updates `name` and `hostname` parameters.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - &anchor\n name: switch\n update_every: 10\n hostname: \"192.0.2.1\"\n community: public\n options:\n version: 2\n charts:\n - id: \"bandwidth_port1\"\n title: \"Switch Bandwidth for port 1\"\n units: \"kilobits/s\"\n type: \"area\"\n family: \"ports\"\n dimensions:\n - name: \"in\"\n oid: \"1.3.6.1.2.1.2.2.1.10.1\"\n algorithm: \"incremental\"\n multiplier: 8\n divisor: 1000\n - name: \"out\"\n oid: \"1.3.6.1.2.1.2.2.1.16.1\"\n multiplier: -8\n divisor: 1000\n - <<: *anchor\n name: switch2\n hostname: \"192.0.2.2\"\n - <<: *anchor\n name: switch3\n hostname: \"192.0.2.3\"\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `snmp` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m snmp\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nThe metrics that will be collected are defined in the configuration file.\n", "integration_type": "collector", "id": "go.d.plugin-snmp-SNMP_devices", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/snmp/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "solr", "monitored_instance": {"name": "Solr", "link": "https://lucene.apache.org/solr/", "icon_filename": "solr.svg", "categories": ["data-collection.search-engines"]}, "keywords": ["solr"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Solr\n\n## Overview\n\nThis collector monitors Solr instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Solr version 6.4+\n\nThis collector does not work with Solr versions lower 6.4.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/solr.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/solr.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| socket | Server Unix socket. | | False |\n| address | Server address in IP:PORT format. | | False |\n| fcgi_path | Status path. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:8983\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal Solr instance with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:8983\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://localhost:8983\n\n - name: remote\n url: http://203.0.113.10:8983\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `solr` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m solr\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Solr instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| solr.search_requests | search | requests/s |\n| solr.search_errors | errors | errors/s |\n| solr.search_errors_by_type | client, server, timeouts | errors/s |\n| solr.search_requests_processing_time | time | milliseconds |\n| solr.search_requests_timings | min, median, mean, max | milliseconds |\n| solr.search_requests_processing_time_percentile | p75, p95, p99, p999 | milliseconds |\n| solr.update_requests | search | requests/s |\n| solr.update_errors | errors | errors/s |\n| solr.update_errors_by_type | client, server, timeouts | errors/s |\n| solr.update_requests_processing_time | time | milliseconds |\n| solr.update_requests_timings | min, median, mean, max | milliseconds |\n| solr.update_requests_processing_time_percentile | p75, p95, p99, p999 | milliseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-solr-Solr", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/solr/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "springboot2", "monitored_instance": {"name": "Java Spring-boot 2 applications", "link": "", "icon_filename": "springboot.png", "categories": ["data-collection.apm"]}, "keywords": ["springboot"], "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Java Spring-boot 2 applications\n\n## Overview\n\nThis collector monitors Java Spring-boot 2 applications that expose their metrics using the Spring Boot Actuator included in the Spring Boot library.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects applications running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure Spring Boot Actuator\n\nThe Spring Boot Actuator exposes metrics over HTTP, to use it:\n\n- add `org.springframework.boot:spring-boot-starter-actuator` and `io.micrometer:micrometer-registry-prometheus` to your application dependencies.\n- set `management.endpoints.web.exposure.include=*` in your `application.properties`.\n\nRefer to the [Spring Boot Actuator: Production-ready features](https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready.html) and [81. Actuator - Part IX. \u2018How-to\u2019 guides](https://docs.spring.io/spring-boot/docs/current/reference/html/howto-actuator.html) for more information.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/springboot2.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/springboot2.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/actuator/prometheus\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/actuator/prometheus\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1:8080/actuator/prometheus\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8080/actuator/prometheus\n\n - name: remote\n url: http://192.0.2.1:8080/actuator/prometheus\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `springboot2` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m springboot2\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Java Spring-boot 2 applications instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| springboot2.response_codes | 1xx, 2xx, 3xx, 4xx, 5xx | requests/s |\n| springboot2.thread | daemon, total | threads |\n| springboot2.heap | free, eden, survivor, old | B |\n| springboot2.heap_eden | used, commited | B |\n| springboot2.heap_survivor | used, commited | B |\n| springboot2.heap_old | used, commited | B |\n| springboot2.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-springboot2-Java_Spring-boot_2_applications", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/springboot2/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "squidlog", "monitored_instance": {"name": "Squid log files", "link": "https://www.lighttpd.net/", "icon_filename": "squid.png", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["squid", "logs"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# Squid log files\n\n## Overview\n\nhis collector monitors Squid servers by parsing their access log files.\n\n\nIt automatically detects log files of Squid severs running on localhost.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/squidlog.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/squidlog.conf\n```\n#### Options\n\nSquid [log format codes](http://www.squid-cache.org/Doc/config/logformat/).\n\nSquidlog is aware how to parse and interpret the following codes:\n\n| field | squid format code | description |\n|----------------|-------------------|---------------------------------------------------------------|\n| resp_time | %tr | Response time (milliseconds). |\n| client_address | %>a | Client source IP address. |\n| client_address | %>A | Client FQDN. |\n| cache_code | %Ss | Squid request status (TCP_MISS etc). |\n| http_code | %>Hs | The HTTP response status code from Content Gateway to client. |\n| resp_size | %Hs | Cache code and http code. |\n| hierarchy | %Sh/% **Note**: don't use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: ltsv\n ltsv_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.regexp_config.pattern\n\nUse pattern with subexpressions names. These names should be **known fields**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\nSyntax:\n\n```yaml\nparser:\n log_type: regexp\n regexp_config:\n pattern: PATTERN\n```\n\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `squidlog` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m squidlog\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Squid log files instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| squidlog.requests | requests | requests/s |\n| squidlog.excluded_requests | unmatched | requests/s |\n| squidlog.type_requests | success, bad, redirect, error | requests/s |\n| squidlog.http_status_code_class_responses | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| squidlog.http_status_code_responses | a dimension per HTTP response code | responses/s |\n| squidlog.bandwidth | sent | kilobits/s |\n| squidlog.response_time | min, max, avg | milliseconds |\n| squidlog.uniq_clients | clients | clients |\n| squidlog.cache_result_code_requests | a dimension per cache result code | requests/s |\n| squidlog.cache_result_code_transport_tag_requests | a dimension per cache result delivery transport tag | requests/s |\n| squidlog.cache_result_code_handling_tag_requests | a dimension per cache result handling tag | requests/s |\n| squidlog.cache_code_object_tag_requests | a dimension per cache result produced object tag | requests/s |\n| squidlog.cache_code_load_source_tag_requests | a dimension per cache result load source tag | requests/s |\n| squidlog.cache_code_error_tag_requests | a dimension per cache result error tag | requests/s |\n| squidlog.http_method_requests | a dimension per HTTP method | requests/s |\n| squidlog.mime_type_requests | a dimension per MIME type | requests/s |\n| squidlog.hier_code_requests | a dimension per hierarchy code | requests/s |\n| squidlog.server_address_forwarded_requests | a dimension per server address | requests/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-squidlog-Squid_log_files", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/squidlog/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "supervisord", "monitored_instance": {"name": "Supervisor", "link": "http://supervisord.org/", "icon_filename": "supervisord.png", "categories": ["data-collection.processes-and-system-services"]}, "keywords": ["supervisor"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Supervisor\n\n## Overview\n\nThis collector monitors Supervisor instances.\n\nIt can collect metrics from:\n\n- [unix socket](http://supervisord.org/configuration.html?highlight=unix_http_server#unix-http-server-section-values)\n- [internal http server](http://supervisord.org/configuration.html?highlight=unix_http_server#inet-http-server-section-settings)\n\nUsed methods:\n\n- [`supervisor.getAllProcessInfo`](http://supervisord.org/api.html#supervisor.rpcinterface.SupervisorNamespaceRPCInterface.getAllProcessInfo)\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/supervisord.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/supervisord.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | System bus requests timeout. | | False |\n\n{% /details %}\n#### Examples\n\n##### HTTP\n\nCollect metrics via HTTP.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: 'http://127.0.0.1:9001/RPC2'\n\n```\n{% /details %}\n##### Socket\n\nCollect metrics via Unix socket.\n\n{% details summary=\"Config\" %}\n```yaml\n- name: local\n url: 'unix:///run/supervisor.sock'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollect metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: 'http://127.0.0.1:9001/RPC2'\n\n - name: remote\n url: 'http://192.0.2.1:9001/RPC2'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `supervisord` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m supervisord\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Supervisor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| supervisord.summary_processes | running, non-running | processes |\n\n### Per process group\n\nThese metrics refer to the process group.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| supervisord.processes | running, non-running | processes |\n| supervisord.process_state_code | a dimension per process | code |\n| supervisord.process_exit_status | a dimension per process | exit status |\n| supervisord.process_uptime | a dimension per process | seconds |\n| supervisord.process_downtime | a dimension per process | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-supervisord-Supervisor", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/supervisord/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "systemdunits", "monitored_instance": {"name": "Systemd", "link": "https://www.freedesktop.org/wiki/Software/systemd/", "icon_filename": "systemd.svg", "categories": ["data-collection.systemd"]}, "keywords": ["systemd"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Systemd\n\n## Overview\n\nThis collector monitors Systemd units state.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/systemdunits.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/systemdunits.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| include | Systemd units filter. | | False |\n| timeout | System bus requests timeout. | | False |\n\n##### include\n\nSystemd units matching the selector will be monitored.\n\n- Logic: (pattern1 OR pattern2)\n- Pattern syntax: [shell file name pattern](https://golang.org/pkg/path/filepath/#Match)\n- Syntax:\n\n```yaml\nincludes:\n - pattern1\n - pattern2\n```\n\n\n{% /details %}\n#### Examples\n\n##### Service units\n\nCollect state of all service type units.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: service\n include:\n - '*.service'\n\n```\n{% /details %}\n##### One specific unit\n\nCollect state of one specific unit.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my-specific-service\n include:\n - 'my-specific.service'\n\n```\n{% /details %}\n##### All unit types\n\nCollect state of all units.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my-specific-service-unit\n include:\n - '*'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollect state of all service and socket type units.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: service\n include:\n - '*.service'\n\n - name: socket\n include:\n - '*.socket'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `systemdunits` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m systemdunits\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ systemd_service_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.service_unit_state | systemd service unit in the failed state |\n| [ systemd_socket_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.socket_unit_state | systemd socket unit in the failed state |\n| [ systemd_target_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.target_unit_state | systemd target unit in the failed state |\n| [ systemd_path_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.path_unit_state | systemd path unit in the failed state |\n| [ systemd_device_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.device_unit_state | systemd device unit in the failed state |\n| [ systemd_mount_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.mount_unit_state | systemd mount unit in the failed state |\n| [ systemd_automount_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.automount_unit_state | systemd automount unit in the failed state |\n| [ systemd_swap_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.swap_unit_state | systemd swap unit in the failed state |\n| [ systemd_scope_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.scope_unit_state | systemd scope unit in the failed state |\n| [ systemd_slice_unit_failed_state ](https://github.com/netdata/netdata/blob/master/health/health.d/systemdunits.conf) | systemd.slice_unit_state | systemd slice unit in the failed state |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per unit\n\nThese metrics refer to the systemd unit.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| unit_name | systemd unit name |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| systemd.service_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.socket_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.target_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.path_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.device_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.mount_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.automount_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.swap_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.timer_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.scope_unit_state | active, inactive, activating, deactivating, failed | state |\n| systemd.slice_unit_state | active, inactive, activating, deactivating, failed | state |\n\n", "integration_type": "collector", "id": "go.d.plugin-systemdunits-Systemd", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/systemdunits/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "tengine", "monitored_instance": {"name": "Tengine", "link": "https://tengine.taobao.org/", "icon_filename": "tengine.jpeg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["tengine", "web", "webserver"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Tengine\n\n## Overview\n\nThis collector monitors Tengine servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable ngx_http_reqstat_module module.\n\nTo enable the module, see the [official documentation](ngx_http_reqstat_module](https://tengine.taobao.org/document/http_reqstat.html).\nThe default line format is the only supported format.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/tengine.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/tengine.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n username: foo\n password: bar\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nTengine with enabled HTTPS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: https://127.0.0.1/us\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1/us\n\n - name: remote\n url: http://203.0.113.10/us\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tengine` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m tengine\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tengine instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tengine.bandwidth_total | in, out | B/s |\n| tengine.connections_total | accepted | connections/s |\n| tengine.requests_total | processed | requests/s |\n| tengine.requests_per_response_code_family_total | 2xx, 3xx, 4xx, 5xx, other | requests/s |\n| tengine.requests_per_response_code_detailed_total | 200, 206, 302, 304, 403, 404, 419, 499, 500, 502, 503, 504, 508, other | requests/s |\n| tengine.requests_upstream_total | requests | requests/s |\n| tengine.tries_upstream_total | calls | calls/s |\n| tengine.requests_upstream_per_response_code_family_total | 4xx, 5xx | requests/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-tengine-Tengine", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/tengine/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "traefik", "monitored_instance": {"name": "Traefik", "link": "Traefik", "icon_filename": "traefik.svg", "categories": ["data-collection.web-servers-and-web-proxies"]}, "keywords": ["traefik", "proxy", "webproxy"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Traefik\n\n## Overview\n\nThis collector monitors Traefik servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable built-in Prometheus exporter\n\nTo enable see [Prometheus exporter](https://doc.traefik.io/traefik/observability/metrics/p1rometheus/) documentation.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/traefik.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/traefik.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"All options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8082/metrics\n\n```\n{% /details %}\n##### Basic HTTP auth\n\nLocal server with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8082/metrics\n username: foo\n password: bar\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n http://127.0.0.1:8082/metrics\n\n - name: remote\n http://192.0.2.0:8082/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `traefik` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m traefik\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per entrypoint, protocol\n\nThese metrics refer to the endpoint.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| traefik.entrypoint_requests | 1xx, 2xx, 3xx, 4xx, 5xx | requests/s |\n| traefik.entrypoint_request_duration_average | 1xx, 2xx, 3xx, 4xx, 5xx | milliseconds |\n| traefik.entrypoint_open_connections | a dimension per HTTP method | connections |\n\n", "integration_type": "collector", "id": "go.d.plugin-traefik-Traefik", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/traefik/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "unbound", "monitored_instance": {"name": "Unbound", "link": "https://nlnetlabs.nl/projects/unbound/about/", "icon_filename": "unbound.png", "categories": ["data-collection.dns-and-dhcp-servers"]}, "keywords": ["unbound", "dns"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Unbound\n\n## Overview\n\nThis collector monitors Unbound servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable remote control interface\n\nSet `control-enable` to yes in [unbound.conf](https://nlnetlabs.nl/documentation/unbound/unbound.conf).\n\n\n#### Check permissions and adjust if necessary\n\nIf using unix socket:\n\n- socket should be readable and writeable by `netdata` user\n\nIf using ip socket and TLS is disabled:\n\n- socket should be accessible via network\n\nIf TLS is enabled, in addition:\n\n- `control-key-file` should be readable by `netdata` user\n- `control-cert-file` should be readable by `netdata` user\n\nFor auto-detection parameters from `unbound.conf`:\n\n- `unbound.conf` should be readable by `netdata` user\n- if you have several configuration files (include feature) all of them should be readable by `netdata` user\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/unbound.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/unbound.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address in IP:PORT format. | | True |\n| timeout | Connection/read/write/ssl handshake timeout. | | False |\n| conf_path | Absolute path to the unbound configuration file. | | False |\n| cumulative_stats | Statistics collection mode. Should have the same value as the `statistics-cumulative` parameter in the unbound configuration file. | | False |\n| use_tls | Whether to use TLS or not. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certificate authority that client use when verifying server certificates. | | False |\n| tls_cert | Client tls certificate. | | False |\n| tls_key | Client tls key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:8953\n\n```\n{% /details %}\n##### Unix socket\n\nConnecting through Unix socket.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: socket\n address: /var/run/unbound.sock\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:8953\n\n - name: remote\n address: 203.0.113.11:8953\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `unbound` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m unbound\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Unbound instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| unbound.queries | queries | queries |\n| unbound.queries_ip_ratelimited | ratelimited | queries |\n| unbound.dnscrypt_queries | crypted, cert, cleartext, malformed | queries |\n| unbound.cache | hits, miss | events |\n| unbound.cache_percentage | hits, miss | percentage |\n| unbound.prefetch | prefetches | prefetches |\n| unbound.expired | expired | replies |\n| unbound.zero_ttl_replies | zero_ttl | replies |\n| unbound.recursive_replies | recursive | replies |\n| unbound.recursion_time | avg, median | milliseconds |\n| unbound.request_list_usage | avg, max | queries |\n| unbound.current_request_list_usage | all, users | queries |\n| unbound.request_list_jostle_list | overwritten, dropped | queries |\n| unbound.tcpusage | usage | buffers |\n| unbound.uptime | time | seconds |\n| unbound.cache_memory | message, rrset, dnscrypt_nonce, dnscrypt_shared_secret | KB |\n| unbound.mod_memory | iterator, respip, validator, subnet, ipsec | KB |\n| unbound.mem_streamwait | streamwait | KB |\n| unbound.cache_count | infra, key, msg, rrset, dnscrypt_nonce, shared_secret | items |\n| unbound.type_queries | a dimension per query type | queries |\n| unbound.class_queries | a dimension per query class | queries |\n| unbound.opcode_queries | a dimension per query opcode | queries |\n| unbound.flag_queries | qr, aa, tc, rd, ra, z, ad, cd | queries |\n| unbound.rcode_answers | a dimension per reply rcode | replies |\n\n### Per thread\n\nThese metrics refer to threads.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| unbound.thread_queries | queries | queries |\n| unbound.thread_queries_ip_ratelimited | ratelimited | queries |\n| unbound.thread_dnscrypt_queries | crypted, cert, cleartext, malformed | queries |\n| unbound.thread_cache | hits, miss | events |\n| unbound.thread_cache_percentage | hits, miss | percentage |\n| unbound.thread_prefetch | prefetches | prefetches |\n| unbound.thread_expired | expired | replies |\n| unbound.thread_zero_ttl_replies | zero_ttl | replies |\n| unbound.thread_recursive_replies | recursive | replies |\n| unbound.thread_recursion_time | avg, median | milliseconds |\n| unbound.thread_request_list_usage | avg, max | queries |\n| unbound.thread_current_request_list_usage | all, users | queries |\n| unbound.thread_request_list_jostle_list | overwritten, dropped | queries |\n| unbound.thread_tcpusage | usage | buffers |\n\n", "integration_type": "collector", "id": "go.d.plugin-unbound-Unbound", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/unbound/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "vcsa", "monitored_instance": {"name": "vCenter Server Appliance", "link": "https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vcsa.doc/GUID-223C2821-BD98-4C7A-936B-7DBE96291BA4.html", "icon_filename": "vmware.svg", "categories": ["data-collection.containers-and-vms"]}, "keywords": ["vmware"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# vCenter Server Appliance\n\n## Overview\n\nThis collector monitors [health statistics](https://developer.vmware.com/apis/vsphere-automation/latest/appliance/health/) of vCenter Server Appliance servers.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vcsa.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vcsa.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | True |\n| password | Password for basic HTTP authentication. | | True |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: vcsa1\n url: https://203.0.113.1\n username: admin@vsphere.local\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nTwo instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: vcsa1\n url: https://203.0.113.1\n username: admin@vsphere.local\n password: password\n\n - name: vcsa2\n url: https://203.0.113.10\n username: admin@vsphere.local\n password: password\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vcsa` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vcsa\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vcsa_system_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.system_health | overall system health status |\n| [ vcsa_swap_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | swap health status |\n| [ vcsa_storage_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | storage health status |\n| [ vcsa_mem_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | memory health status |\n| [ vcsa_load_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | load health status |\n| [ vcsa_database_storage_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | database storage health status |\n| [ vcsa_applmgmt_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | database storage health status |\n| [ vcsa_software_updates_health ](https://github.com/netdata/netdata/blob/master/health/health.d/vcsa.conf) | vcsa.components_health | software updates availability status |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per vCenter Server Appliance instance\n\nThese metrics refer to the entire monitored application.\n\nSee health statuses
\nOverall System Health:\n\n| Numeric | Text | Description |\n|:-------:|:---------:|:-------------------------------------------------------------------------------------------------------------------------|\n| `-1` | `unknown` | Module failed to decode status. |\n| `0` | `green` | All components in the appliance are healthy. |\n| `1` | `yellow` | One or more components in the appliance might become overloaded soon. |\n| `2` | `orange` | One or more components in the appliance might be degraded. |\n| `3` | `red` | One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. |\n| `4` | `gray` | No health data is available. |\n\nComponents Health:\n\n| Numeric | Text | Description |\n|:-------:|:---------:|:-------------------------------------------------------------|\n| `-1` | `unknown` | Module failed to decode status. |\n| `0` | `green` | The component is healthy. |\n| `1` | `yellow` | The component is healthy, but may have some problems. |\n| `2` | `orange` | The component is degraded, and may have serious problems. |\n| `3` | `red` | The component is unavailable, or will stop functioning soon. |\n| `4` | `gray` | No health data is available. |\n\nSoftware Updates Health:\n\n| Numeric | Text | Description |\n|:-------:|:---------:|:-----------------------------------------------------|\n| `-1` | `unknown` | Module failed to decode status. |\n| `0` | `green` | No updates available. |\n| `2` | `orange` | Non-security patches might be available. |\n| `3` | `red` | Security patches might be available. |\n| `4` | `gray` | An error retrieving information on software updates. |\n\n \n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vcsa.system_health | system | status |\n| vcsa.components_health | applmgmt, database_storage, mem, storage, swap | status |\n| vcsa.software_updates_health | software_packages | status |\n\n", "integration_type": "collector", "id": "go.d.plugin-vcsa-vCenter_Server_Appliance", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/vcsa/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "vernemq", "monitored_instance": {"name": "VerneMQ", "link": "https://vernemq.com", "icon_filename": "vernemq.svg", "categories": ["data-collection.message-brokers"]}, "keywords": ["vernemq", "message brokers"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# VerneMQ\n\n## Overview\n\nThis collector monitors VerneMQ instances.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vernemq.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vernemq.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n\n```\n{% /details %}\n##### HTTP authentication\n\nLocal instance with basic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nLocal and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n url: http://127.0.0.1:8888/metrics\n\n - name: remote\n url: http://203.0.113.10:8888/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vernemq` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vernemq\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vernemq_socket_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.socket_errors | number of socket errors in the last minute |\n| [ vernemq_queue_message_drop ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of dropped messaged due to full queues in the last minute |\n| [ vernemq_queue_message_expired ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of messages which expired before delivery in the last minute |\n| [ vernemq_queue_message_unhandled ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.queue_undelivered_messages | number of unhandled messages (connections with clean session=true) in the last minute |\n| [ vernemq_average_scheduler_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.average_scheduler_utilization | average scheduler utilization over the last 10 minutes |\n| [ vernemq_cluster_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.cluster_dropped | amount of traffic dropped during communication with the cluster nodes in the last minute |\n| [ vernemq_netsplits ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vvernemq.netsplits | number of detected netsplits (split brain situation) in the last minute |\n| [ vernemq_mqtt_connack_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_connack_sent_reason | number of sent unsuccessful v3/v5 CONNACK packets in the last minute |\n| [ vernemq_mqtt_disconnect_received_reason_not_normal ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_received_reason | number of received not normal v5 DISCONNECT packets in the last minute |\n| [ vernemq_mqtt_disconnect_sent_reason_not_normal ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_disconnect_sent_reason | number of sent not normal v5 DISCONNECT packets in the last minute |\n| [ vernemq_mqtt_subscribe_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_error | number of failed v3/v5 SUBSCRIBE operations in the last minute |\n| [ vernemq_mqtt_subscribe_auth_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_subscribe_auth_error | number of unauthorized v3/v5 SUBSCRIBE attempts in the last minute |\n| [ vernemq_mqtt_unsubscribe_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_unsubscribe_error | number of failed v3/v5 UNSUBSCRIBE operations in the last minute |\n| [ vernemq_mqtt_publish_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_publish_errors | number of failed v3/v5 PUBLISH operations in the last minute |\n| [ vernemq_mqtt_publish_auth_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_publish_auth_errors | number of unauthorized v3/v5 PUBLISH attempts in the last minute |\n| [ vernemq_mqtt_puback_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_received_reason | number of received unsuccessful v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_puback_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_sent_reason | number of sent unsuccessful v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_puback_unexpected ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_puback_invalid_error | number of received unexpected v3/v5 PUBACK packets in the last minute |\n| [ vernemq_mqtt_pubrec_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_received_reason | number of received unsuccessful v5 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrec_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_sent_reason | number of sent unsuccessful v5 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrec_invalid_error ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrec_invalid_error | number of received unexpected v3 PUBREC packets in the last minute |\n| [ vernemq_mqtt_pubrel_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_received_reason | number of received unsuccessful v5 PUBREL packets in the last minute |\n| [ vernemq_mqtt_pubrel_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubrel_sent_reason | number of sent unsuccessful v5 PUBREL packets in the last minute |\n| [ vernemq_mqtt_pubcomp_received_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_received_reason | number of received unsuccessful v5 PUBCOMP packets in the last minute |\n| [ vernemq_mqtt_pubcomp_sent_reason_unsuccessful ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_sent_reason | number of sent unsuccessful v5 PUBCOMP packets in the last minute |\n| [ vernemq_mqtt_pubcomp_unexpected ](https://github.com/netdata/netdata/blob/master/health/health.d/vernemq.conf) | vernemq.mqtt_pubcomp_invalid_error | number of received unexpected v3/v5 PUBCOMP packets in the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per VerneMQ instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vernemq.sockets | open | sockets |\n| vernemq.socket_operations | open, close | sockets/s |\n| vernemq.client_keepalive_expired | closed | sockets/s |\n| vernemq.socket_close_timeout | closed | sockets/s |\n| vernemq.socket_errors | errors | errors/s |\n| vernemq.queue_processes | queue_processes | queue processes |\n| vernemq.queue_processes_operations | setup, teardown | events/s |\n| vernemq.queue_process_init_from_storage | queue_processes | queue processes/s |\n| vernemq.queue_messages | received, sent | messages/s |\n| vernemq.queue_undelivered_messages | dropped, expired, unhandled | messages/s |\n| vernemq.router_subscriptions | subscriptions | subscriptions |\n| vernemq.router_matched_subscriptions | local, remote | subscriptions/s |\n| vernemq.router_memory | used | KiB |\n| vernemq.average_scheduler_utilization | utilization | percentage |\n| vernemq.system_utilization_scheduler | a dimension per scheduler | percentage |\n| vernemq.system_processes | processes | processes |\n| vernemq.system_reductions | reductions | ops/s |\n| vernemq.system_context_switches | context_switches | ops/s |\n| vernemq.system_io | received, sent | kilobits/s |\n| vernemq.system_run_queue | ready | processes |\n| vernemq.system_gc_count | gc | ops/s |\n| vernemq.system_gc_words_reclaimed | words_reclaimed | ops/s |\n| vernemq.system_allocated_memory | processes, system | KiB |\n| vernemq.bandwidth | received, sent | kilobits/s |\n| vernemq.retain_messages | messages | messages |\n| vernemq.retain_memory | used | KiB |\n| vernemq.cluster_bandwidth | received, sent | kilobits/s |\n| vernemq.cluster_dropped | dropped | kilobits/s |\n| vernemq.netsplit_unresolved | unresolved | netsplits |\n| vernemq.netsplits | resolved, detected | netsplits/s |\n| vernemq.mqtt_auth | received, sent | packets/s |\n| vernemq.mqtt_auth_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_auth_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_connect | connect, connack | packets/s |\n| vernemq.mqtt_connack_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_disconnect | received, sent | packets/s |\n| vernemq.mqtt_disconnect_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_disconnect_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_subscribe | subscribe, suback | packets/s |\n| vernemq.mqtt_subscribe_error | failed | ops/s |\n| vernemq.mqtt_subscribe_auth_error | unauth | attempts/s |\n| vernemq.mqtt_unsubscribe | unsubscribe, unsuback | packets/s |\n| vernemq.mqtt_unsubscribe | mqtt_unsubscribe_error | ops/s |\n| vernemq.mqtt_publish | received, sent | packets/s |\n| vernemq.mqtt_publish_errors | failed | ops/s |\n| vernemq.mqtt_publish_auth_errors | unauth | attempts/s |\n| vernemq.mqtt_puback | received, sent | packets/s |\n| vernemq.mqtt_puback_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_puback_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_puback_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_pubrec | received, sent | packets/s |\n| vernemq.mqtt_pubrec_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrec_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrec_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_pubrel | received, sent | packets/s |\n| vernemq.mqtt_pubrel_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubrel_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcom | received, sent | packets/s |\n| vernemq.mqtt_pubcomp_received_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcomp_sent_reason | a dimensions per reason | packets/s |\n| vernemq.mqtt_pubcomp_invalid_error | unexpected | messages/s |\n| vernemq.mqtt_ping | pingreq, pingresp | packets/s |\n| vernemq.node_uptime | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-vernemq-VerneMQ", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/vernemq/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "vsphere", "monitored_instance": {"name": "VMware vCenter Server", "link": "https://www.vmware.com/products/vcenter-server.html", "icon_filename": "vmware.svg", "categories": ["data-collection.containers-and-vms"]}, "keywords": ["vmware", "esxi", "vcenter"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": true}, "overview": "# VMware vCenter Server\n\n## Overview\n\nThis collector monitors hosts and vms performance statistics from `vCenter` servers.\n\n> **Warning**: The `vsphere` collector cannot re-login and continue collecting metrics after a vCenter reboot.\n> go.d.plugin needs to be restarted.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default `update_every` is 20 seconds, and it doesn't make sense to decrease the value.\n**VMware real-time statistics are generated at the 20-second specificity**.\n\nIt is likely that 20 seconds is not enough for big installations and the value should be tuned.\n\nTo get a better view we recommend running the collector in debug mode and seeing how much time it will take to collect metrics.\n\n\nExample (all not related debug lines were removed)
\n\n```\n[ilyam@pc]$ ./go.d.plugin -d -m vsphere\n[ DEBUG ] vsphere[vsphere] discover.go:94 discovering : starting resource discovering process\n[ DEBUG ] vsphere[vsphere] discover.go:102 discovering : found 3 dcs, process took 49.329656ms\n[ DEBUG ] vsphere[vsphere] discover.go:109 discovering : found 12 folders, process took 49.538688ms\n[ DEBUG ] vsphere[vsphere] discover.go:116 discovering : found 3 clusters, process took 47.722692ms\n[ DEBUG ] vsphere[vsphere] discover.go:123 discovering : found 2 hosts, process took 52.966995ms\n[ DEBUG ] vsphere[vsphere] discover.go:130 discovering : found 2 vms, process took 49.832979ms\n[ INFO ] vsphere[vsphere] discover.go:140 discovering : found 3 dcs, 12 folders, 3 clusters (2 dummy), 2 hosts, 3 vms, process took 249.655993ms\n[ DEBUG ] vsphere[vsphere] build.go:12 discovering : building : starting building resources process\n[ INFO ] vsphere[vsphere] build.go:23 discovering : building : built 3/3 dcs, 12/12 folders, 3/3 clusters, 2/2 hosts, 3/3 vms, process took 63.3\u00b5s\n[ DEBUG ] vsphere[vsphere] hierarchy.go:10 discovering : hierarchy : start setting resources hierarchy process\n[ INFO ] vsphere[vsphere] hierarchy.go:18 discovering : hierarchy : set 3/3 clusters, 2/2 hosts, 3/3 vms, process took 6.522\u00b5s\n[ DEBUG ] vsphere[vsphere] filter.go:24 discovering : filtering : starting filtering resources process\n[ DEBUG ] vsphere[vsphere] filter.go:45 discovering : filtering : removed 0 unmatched hosts\n[ DEBUG ] vsphere[vsphere] filter.go:56 discovering : filtering : removed 0 unmatched vms\n[ INFO ] vsphere[vsphere] filter.go:29 discovering : filtering : filtered 0/2 hosts, 0/3 vms, process took 42.973\u00b5s\n[ DEBUG ] vsphere[vsphere] metric_lists.go:14 discovering : metric lists : starting resources metric lists collection process\n[ INFO ] vsphere[vsphere] metric_lists.go:30 discovering : metric lists : collected metric lists for 2/2 hosts, 3/3 vms, process took 275.60764ms\n[ INFO ] vsphere[vsphere] discover.go:74 discovering : discovered 2/2 hosts, 3/3 vms, the whole process took 525.614041ms\n[ INFO ] vsphere[vsphere] discover.go:11 starting discovery process, will do discovery every 5m0s\n[ DEBUG ] vsphere[vsphere] collect.go:11 starting collection process\n[ DEBUG ] vsphere[vsphere] scrape.go:48 scraping : scraped metrics for 2/2 hosts, process took 96.257374ms\n[ DEBUG ] vsphere[vsphere] scrape.go:60 scraping : scraped metrics for 3/3 vms, process took 57.879697ms\n[ DEBUG ] vsphere[vsphere] collect.go:23 metrics collected, process took 154.77997ms\n```\n\n \n\nThere you can see that discovering took `525.614041ms`, and collecting metrics took `154.77997ms`. Discovering is a separate thread, it doesn't affect collecting.\n`update_every` and `timeout` parameters should be adjusted based on these numbers.\n\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/vsphere.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/vsphere.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | vCenter server URL. | | True |\n| host_include | Hosts selector (filter). | | False |\n| vm_include | Virtual machines selector (filter). | | False |\n| discovery_interval | Hosts and VMs discovery interval. | | False |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n##### host_include\n\nMetrics of hosts matching the selector will be collected.\n\n- Include pattern syntax: \"/Datacenter pattern/Cluster pattern/Host pattern\".\n- Match pattern syntax: [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n- Syntax:\n\n ```yaml\n host_include:\n - '/DC1/*' # select all hosts from datacenter DC1\n - '/DC2/*/!Host2 *' # select all hosts from datacenter DC2 except HOST2\n - '/DC3/Cluster3/*' # select all hosts from datacenter DC3 cluster Cluster3\n ```\n\n\n##### vm_include\n\nMetrics of VMs matching the selector will be collected.\n\n- Include pattern syntax: \"/Datacenter pattern/Cluster pattern/Host pattern/VM pattern\".\n- Match pattern syntax: [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n- Syntax:\n\n ```yaml\n vm_include:\n - '/DC1/*' # select all VMs from datacenter DC\n - '/DC2/*/*/!VM2 *' # select all VMs from datacenter DC2 except VM2\n - '/DC3/Cluster3/*' # select all VMs from datacenter DC3 cluster Cluster3\n ```\n\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name : vcenter1\n url : https://203.0.113.1\n username : admin@vsphere.local\n password : somepassword\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name : vcenter1\n url : https://203.0.113.1\n username : admin@vsphere.local\n password : somepassword\n\n - name : vcenter2\n url : https://203.0.113.10\n username : admin@vsphere.local\n password : somepassword\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `vsphere` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m vsphere\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ vsphere_vm_mem_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.vm_mem_usage_percentage | virtual machine memory utilization |\n| [ vsphere_host_mem_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.host_mem_usage_percentage | host memory utilization |\n| [ vsphere_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_errors_total | number of inbound errors for the network interface in the last 10 minutes |\n| [ vsphere_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_errors_total | number of outbound errors for the network interface in the last 10 minutes |\n| [ vsphere_inbound_packets_errors_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_packets_total | ratio of inbound errors for the network interface over the last 10 minutes |\n| [ vsphere_outbound_packets_errors_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_packets_total | ratio of outbound errors for the network interface over the last 10 minutes |\n| [ vsphere_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.cpu_usage_total | average CPU utilization |\n| [ vsphere_inbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_drops_total | number of inbound dropped packets for the network interface in the last 10 minutes |\n| [ vsphere_outbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_drops_total | number of outbound dropped packets for the network interface in the last 10 minutes |\n| [ vsphere_inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_packets_total | ratio of inbound dropped packets for the network interface over the last 10 minutes |\n| [ vsphere_outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/vsphere.conf) | vsphere.net_packets_total | ratio of outbound dropped packets for the network interface over the last 10 minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per virtual machine\n\nThese metrics refer to the Virtual Machine.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vsphere.vm_cpu_usage_total | used | percentage |\n| vsphere.vm_mem_usage_percentage | used | percentage |\n| vsphere.vm_mem_usage | granted, consumed, active, shared | KiB |\n| vsphere.vm_mem_swap_rate | in, out | KiB/s |\n| vsphere.vm_mem_swap | swapped | KiB |\n| vsphere.vm_net_bandwidth_total | rx, tx | KiB/s |\n| vsphere.vm_net_packets_total | rx, tx | packets |\n| vsphere.vm_net_drops_total | rx, tx | packets |\n| vsphere.vm_disk_usage_total | read, write | KiB/s |\n| vsphere.vm_disk_max_latency | latency | ms |\n| vsphere.vm_overall_status | status | status |\n| vsphere.vm_system_uptime | time | seconds |\n\n### Per host\n\nThese metrics refer to the ESXi host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| vsphere.host_cpu_usage_total | used | percentage |\n| vsphere.host_mem_usage_percentage | used | percentage |\n| vsphere.host_mem_usage | granted, consumed, active, shared, sharedcommon | KiB |\n| vsphere.host_mem_swap_rate | in, out | KiB/s |\n| vsphere.host_net_bandwidth_total | rx, tx | KiB/s |\n| vsphere.host_net_packets_total | rx, tx | packets |\n| vsphere.host_net_drops_total | rx, tx | packets |\n| vsphere.host_net_errors_total | rx, tx | errors |\n| vsphere.host_disk_usage_total | read, write | KiB/s |\n| vsphere.host_disk_max_latency | latency | ms |\n| vsphere.host_overall_status | status | status |\n| vsphere.host_system_uptime | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-vsphere-VMware_vCenter_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/vsphere/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "web_log", "monitored_instance": {"name": "Web server log files", "link": "", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "webservers.svg"}, "keywords": ["webserver", "apache", "httpd", "nginx", "lighttpd", "logs"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# Web server log files\n\n## Overview\n\nThis collector monitors web servers by parsing their log files.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects log files of web servers running on localhost.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/web_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/web_log.conf\n```\n#### Options\n\nWeblog is aware of how to parse and interpret the following fields (**known fields**):\n\n> [nginx](https://nginx.org/en/docs/varindex.html)\n>\n> [apache](https://httpd.apache.org/docs/current/mod/mod_log_config.html)\n\n| nginx | apache | description |\n|-------------------------|----------|------------------------------------------------------------------------------------------|\n| $host ($http_host) | %v | Name of the server which accepted a request. |\n| $server_port | %p | Port of the server which accepted a request. |\n| $scheme | - | Request scheme. \"http\" or \"https\". |\n| $remote_addr | %a (%h) | Client address. |\n| $request | %r | Full original request line. The line is \"$request_method $request_uri $server_protocol\". |\n| $request_method | %m | Request method. Usually \"GET\" or \"POST\". |\n| $request_uri | %U | Full original request URI. |\n| $server_protocol | %H | Request protocol. Usually \"HTTP/1.0\", \"HTTP/1.1\", or \"HTTP/2.0\". |\n| $status | %s (%>s) | Response status code. |\n| $request_length | %I | Bytes received from a client, including request and headers. |\n| $bytes_sent | %O | Bytes sent to a client, including request and headers. |\n| $body_bytes_sent | %B (%b) | Bytes sent to a client, not counting the response header. |\n| $request_time | %D | Request processing time. |\n| $upstream_response_time | - | Time spent on receiving the response from the upstream server. |\n| $ssl_protocol | - | Protocol of an established SSL connection. |\n| $ssl_cipher | - | String of ciphers used for an established SSL connection. |\n\nNotes:\n\n- Apache `%h` logs the IP address if [HostnameLookups](https://httpd.apache.org/docs/2.4/mod/core.html#hostnamelookups) is Off. The web log collector counts hostnames as IPv4 addresses. We recommend either to disable HostnameLookups or use `%a` instead of `%h`.\n- Since httpd 2.0, unlike 1.3, the `%b` and `%B` format strings do not represent the number of bytes sent to the client, but simply the size in bytes of the HTTP response. It will differ, for instance, if the connection is aborted, or if SSL is used. The `%O` format provided by [`mod_logio`](https://httpd.apache.org/docs/2.4/mod/mod_logio.html) will log the actual number of bytes sent over the network.\n- To get `%I` and `%O` working you need to enable `mod_logio` on Apache.\n- NGINX logs URI with query parameters, Apache doesnt.\n- `$request` is parsed into `$request_method`, `$request_uri` and `$server_protocol`. If you have `$request` in your log format, there is no sense to have others.\n- Don't use both `$bytes_sent` and `$body_bytes_sent` (`%O` and `%B` or `%b`). The module does not distinguish between these parameters.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| path | Path to the web server log file. | | True |\n| exclude_path | Path to exclude. | | False |\n| url_patterns | List of URL patterns. | | False |\n| url_patterns.name | Used as a dimension name. | | True |\n| url_patterns.pattern | Used to match against full original request URI. Pattern syntax in [matcher](https://github.com/netdata/go.d.plugin/tree/master/pkg/matcher#supported-format). | | True |\n| parser | Log parser configuration. | | False |\n| parser.log_type | Log parser type. | | False |\n| parser.csv_config | CSV log parser config. | | False |\n| parser.csv_config.delimiter | CSV field delimiter. | | False |\n| parser.csv_config.format | CSV log format. | | False |\n| parser.ltsv_config | LTSV log parser config. | | False |\n| parser.ltsv_config.field_delimiter | LTSV field delimiter. | | False |\n| parser.ltsv_config.value_delimiter | LTSV value delimiter. | | False |\n| parser.ltsv_config.mapping | LTSV fields mapping to **known fields**. | | True |\n| parser.json_config | JSON log parser config. | | False |\n| parser.json_config.mapping | JSON fields mapping to **known fields**. | | True |\n| parser.regexp_config | RegExp log parser config. | | False |\n| parser.regexp_config.pattern | RegExp pattern with named groups. | | True |\n\n##### url_patterns\n\n\"URL pattern\" scope metrics will be collected for each URL pattern. \n\nOption syntax:\n\n```yaml\nurl_patterns:\n - name: name1\n pattern: pattern1\n - name: name2\n pattern: pattern2\n```\n\n\n##### parser.log_type\n\nWeblog supports 5 different log parsers:\n\n| Parser type | Description |\n|-------------|-------------------------------------------|\n| auto | Use CSV and auto-detect format |\n| csv | A comma-separated values |\n| json | [JSON](https://www.json.org/json-en.html) |\n| ltsv | [LTSV](http://ltsv.org/) |\n| regexp | Regular expression with named groups |\n\nSyntax:\n\n```yaml\nparser:\n log_type: auto\n```\n\nIf `log_type` parameter set to `auto` (which is default), weblog will try to auto-detect appropriate log parser and log format using the last line of the log file.\n\n- checks if format is `CSV` (using regexp).\n- checks if format is `JSON` (using regexp).\n- assumes format is `CSV` and tries to find appropriate `CSV` log format using predefined list of formats. It tries to parse the line using each of them in the following order (the first one matches is used later):\n\n ```sh\n $host:$server_port $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent - - $request_length $request_time $upstream_response_time\n $host:$server_port $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent - - $request_length $request_time\n $host:$server_port $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent $request_length $request_time $upstream_response_time\n $host:$server_port $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent $request_length $request_time\n $host:$server_port $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent\n $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent - - $request_length $request_time $upstream_response_time\n $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent - - $request_length $request_time\n $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent $request_length $request_time $upstream_response_time\n $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent $request_length $request_time\n $remote_addr - - [$time_local] \"$request\" $status $body_bytes_sent\n ```\n\n If you're using the default Apache/NGINX log format, auto-detect will work for you. If it doesn't work you need to set the format manually.\n\n\n##### parser.csv_config.format\n\n\n\n##### parser.ltsv_config.mapping\n\nThe mapping is a dictionary where the key is a field, as in logs, and the value is the corresponding **known field**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: ltsv\n ltsv_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.json_config.mapping\n\nThe mapping is a dictionary where the key is a field, as in logs, and the value is the corresponding **known field**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\n```yaml\nparser:\n log_type: json\n json_config:\n mapping:\n label1: field1\n label2: field2\n```\n\n\n##### parser.regexp_config.pattern\n\nUse pattern with subexpressions names. These names should be **known fields**.\n\n> **Note**: don't use `$` and `%` prefixes for mapped field names.\n\nSyntax:\n\n```yaml\nparser:\n log_type: regexp\n regexp_config:\n pattern: PATTERN\n```\n\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `web_log` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m web_log\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ web_log_1m_unmatched ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.excluded_requests | percentage of unparsed log lines over the last minute |\n| [ web_log_1m_requests ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.type_requests | ratio of successful HTTP requests over the last minute (1xx, 2xx, 304, 401) |\n| [ web_log_1m_redirects ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.type_requests | ratio of redirection HTTP requests over the last minute (3xx except 304) |\n| [ web_log_1m_bad_requests ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.type_requests | ratio of client error HTTP requests over the last minute (4xx except 401) |\n| [ web_log_1m_internal_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.type_requests | ratio of server error HTTP requests over the last minute (5xx) |\n| [ web_log_web_slow ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.request_processing_time | average HTTP response time over the last 1 minute |\n| [ web_log_5m_requests_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/web_log.conf) | web_log.type_requests | ratio of successful HTTP requests over over the last 5 minutes, compared with the previous 5 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Web server log files instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.requests | requests | requests/s |\n| web_log.excluded_requests | unmatched | requests/s |\n| web_log.type_requests | success, bad, redirect, error | requests/s |\n| web_log.status_code_class_responses | 1xx, 2xx, 3xx, 4xx, 5xx | responses/s |\n| web_log.status_code_class_1xx_responses | a dimension per 1xx code | responses/s |\n| web_log.status_code_class_2xx_responses | a dimension per 2xx code | responses/s |\n| web_log.status_code_class_3xx_responses | a dimension per 3xx code | responses/s |\n| web_log.status_code_class_4xx_responses | a dimension per 4xx code | responses/s |\n| web_log.status_code_class_5xx_responses | a dimension per 5xx code | responses/s |\n| web_log.bandwidth | received, sent | kilobits/s |\n| web_log.request_processing_time | min, max, avg | milliseconds |\n| web_log.requests_processing_time_histogram | a dimension per bucket | requests/s |\n| web_log.upstream_response_time | min, max, avg | milliseconds |\n| web_log.upstream_responses_time_histogram | a dimension per bucket | requests/s |\n| web_log.current_poll_uniq_clients | ipv4, ipv6 | clients |\n| web_log.vhost_requests | a dimension per vhost | requests/s |\n| web_log.port_requests | a dimension per port | requests/s |\n| web_log.scheme_requests | http, https | requests/s |\n| web_log.http_method_requests | a dimension per HTTP method | requests/s |\n| web_log.http_version_requests | a dimension per HTTP version | requests/s |\n| web_log.ip_proto_requests | ipv4, ipv6 | requests/s |\n| web_log.ssl_proto_requests | a dimension per SSL protocol | requests/s |\n| web_log.ssl_cipher_suite_requests | a dimension per SSL cipher suite | requests/s |\n| web_log.url_pattern_requests | a dimension per URL pattern | requests/s |\n| web_log.custom_field_pattern_requests | a dimension per custom field pattern | requests/s |\n\n### Per custom time field\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.custom_time_field_summary | min, max, avg | milliseconds |\n| web_log.custom_time_field_histogram | a dimension per bucket | observations |\n\n### Per URL pattern\n\nTBD\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| web_log.url_pattern_status_code_responses | a dimension per pattern | responses/s |\n| web_log.url_pattern_http_method_requests | a dimension per HTTP method | requests/s |\n| web_log.url_pattern_bandwidth | received, sent | kilobits/s |\n| web_log.url_pattern_request_processing_time | min, max, avg | milliseconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-web_log-Web_server_log_files", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/weblog/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "whoisquery", "monitored_instance": {"name": "Domain expiration date", "link": "", "icon_filename": "globe.svg", "categories": ["data-collection.synthetic-checks"]}, "keywords": ["whois"], "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "most_popular": false}, "overview": "# Domain expiration date\n\n## Overview\n\nThis collector monitors the remaining time before the domain expires.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/whoisquery.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/whoisquery.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| source | Domain address. | | True |\n| days_until_expiration_warning | Number of days before the alarm status is warning. | | False |\n| days_until_expiration_critical | Number of days before the alarm status is critical. | | False |\n| timeout | The query timeout in seconds. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nBasic configuration example\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_site\n source: my_site.com\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define more than one job, their names must be unique.\n\nCheck the expiration status of the multiple domains.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_site1\n source: my_site1.com\n\n - name: my_site2\n source: my_site2.com\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `whoisquery` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m whoisquery\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ whoisquery_days_until_expiration ](https://github.com/netdata/netdata/blob/master/health/health.d/whoisquery.conf) | whoisquery.time_until_expiration | time until the domain name registration expires |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per domain\n\nThese metrics refer to the configured source.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| domain | Configured source |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| whoisquery.time_until_expiration | expiry | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-whoisquery-Domain_expiration_date", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/whoisquery/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "Active Directory", "link": "https://learn.microsoft.com/en-us/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview", "icon_filename": "windows.svg", "categories": ["data-collection.windows-systems"]}, "keywords": ["windows", "microsoft", "active directory", "ad", "adcs", "adfs"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# Active Directory\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-Active_Directory", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "HyperV", "link": "https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/hyper-v-technology-overview", "icon_filename": "windows.svg", "categories": ["data-collection.windows-systems"]}, "keywords": ["windows", "microsoft", "hyperv", "virtualization", "vm"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# HyperV\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-HyperV", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "MS Exchange", "link": "https://www.microsoft.com/en-us/microsoft-365/exchange/email", "icon_filename": "exchange.svg", "categories": ["data-collection.windows-systems"]}, "keywords": ["windows", "microsoft", "mail"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# MS Exchange\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-MS_Exchange", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "MS SQL Server", "link": "https://www.microsoft.com/en-us/sql-server/", "icon_filename": "mssql.svg", "categories": ["data-collection.windows-systems"]}, "keywords": ["windows", "microsoft", "mssql", "database", "db"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# MS SQL Server\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-MS_SQL_Server", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "NET Framework", "link": "https://dotnet.microsoft.com/en-us/download/dotnet-framework", "icon_filename": "dotnet.svg", "categories": ["data-collection.windows-systems"]}, "keywords": ["windows", "microsoft", "dotnet"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# NET Framework\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-NET_Framework", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "windows", "monitored_instance": {"name": "Windows", "link": "https://www.microsoft.com/en-us/windows", "categories": ["data-collection.windows-systems"], "icon_filename": "windows.svg"}, "keywords": ["windows", "microsoft"], "most_popular": true, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# Windows\n\n## Overview\n\nThis collector monitors the performance of Windows machines, collects both host metrics and metrics from various Windows applications (e.g. Active Directory, MSSQL).\n\n\nIt collect metrics by periodically sending HTTP requests to [Prometheus exporter for Windows machines](https://github.com/prometheus-community/windows_exporter), a native Windows agent running on each host.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt detects Windows exporter instances running on localhost (requires using [Netdata MSI installer](https://github.com/netdata/msi-installer#instructions)).\n\nUsing the Netdata MSI installer is recommended for testing purposes only. For production use, you need to install Netdata on a Linux host and configure it to collect metrics remotely.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nData collection affects the CPU usage of the Windows host. CPU usage depends on the frequency of data collection and the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install Windows exporter\n\nTo install the Windows exporter, follow the [official installation guide](https://github.com/prometheus-community/windows_exporter#installation).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| url | Server URL. | | True |\n| timeout | HTTP request timeout. | | False |\n| username | Username for basic HTTP authentication. | | False |\n| password | Password for basic HTTP authentication. | | False |\n| proxy_url | Proxy URL. | | False |\n| proxy_username | Username for proxy basic HTTP authentication. | | False |\n| proxy_password | Password for proxy basic HTTP authentication. | | False |\n| method | HTTP request method. | | False |\n| body | HTTP request body. | | False |\n| headers | HTTP request headers. | | False |\n| not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n##### HTTP authentication\n\nBasic HTTP authentication.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: http://192.0.2.1:9182/metrics\n username: username\n password: password\n\n```\n{% /details %}\n##### HTTPS with self-signed certificate\n\nDo not validate server certificate chain and hostname.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n url: https://192.0.2.1:9182/metrics\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Virtual Node\n\nThe Virtual Node functionality allows you to define nodes in configuration files and treat them as ordinary nodes in all interfaces, panels, tabs, filters, etc.\nYou can create a virtual node for all your Windows machines and control them as separate entities.\n\nTo make your Windows server a virtual node, you need to define virtual nodes in `/etc/netdata/vnodes/vnodes.conf`:\n\n> **Note**: To create a valid guid, you can use the `uuidgen` command on Linux, or the `[guid]::NewGuid()` command in PowerShell on Windows.\n\n```yaml\n# /etc/netdata/vnodes/vnodes.conf\n- hostname: win_server\n guid: \n```\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server\n vnode: win_server\n url: http://192.0.2.1:9182/metrics\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from multiple remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: win_server1\n url: http://192.0.2.1:9182/metrics\n\n - name: win_server2\n url: http://192.0.2.2:9182/metrics\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `windows` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m windows\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ windows_10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.cpu_utilization_total | average CPU utilization over the last 10 minutes |\n| [ windows_ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.memory_utilization | memory utilization |\n| [ windows_inbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of inbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_discarded ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_discarded | number of outbound discarded packets for the network interface in the last 10 minutes |\n| [ windows_inbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of inbound errors for the network interface in the last 10 minutes |\n| [ windows_outbound_packets_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.net_nic_errors | number of outbound errors for the network interface in the last 10 minutes |\n| [ windows_disk_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/windows.conf) | windows.logical_disk_space_usage | disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe collected set of metrics depends on the [enabled collectors](https://github.com/prometheus-community/windows_exporter#collectors).\n\nSupported collectors:\n\n- [cpu](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.cpu.md)\n- [iis](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.iis.md)\n- [memory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.memory.md)\n- [net](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.net.md)\n- [logical_disk](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logical_disk.md)\n- [os](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.os.md)\n- [system](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.system.md)\n- [logon](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.logon.md)\n- [tcp](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.tcp.md)\n- [thermalzone](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.thermalzone.md)\n- [process](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.process.md)\n- [service](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.service.md)\n- [mssql](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.mssql.md)\n- [ad](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.ad.md)\n- [adcs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adcs.md)\n- [adfs](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.adfs.md)\n- [netframework_clrexceptions](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrexceptions.md)\n- [netframework_clrinterop](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrinterop.md)\n- [netframework_clrjit](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrjit.md)\n- [netframework_clrloading](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrloading.md)\n- [netframework_clrlocksandthreads](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrlocksandthreads.md)\n- [netframework_clrmemory](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrmemory.md)\n- [netframework_clrremoting](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.netframework_clrremoting.md)\n- [exchange](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.exchange.md)\n- [hyperv](https://github.com/prometheus-community/windows_exporter/blob/master/docs/collector.hyperv.md)\n\n\n### Per Active Directory instance\n\nThese metrics refer to the entire monitored host.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_utilization_total | dpc, user, privileged, interrupt | percentage |\n| windows.memory_utilization | available, used | bytes |\n| windows.memory_page_faults | page_faults | events/s |\n| windows.memory_swap_utilization | available, used | bytes |\n| windows.memory_swap_operations | read, write | operations/s |\n| windows.memory_swap_pages | read, written | pages/s |\n| windows.memory_cached | cached | KiB |\n| windows.memory_cache_faults | cache_faults | events/s |\n| windows.memory_system_pool | paged, non-paged | bytes |\n| windows.tcp_conns_established | ipv4, ipv6 | connections |\n| windows.tcp_conns_active | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_passive | ipv4, ipv6 | connections/s |\n| windows.tcp_conns_failures | ipv4, ipv6 | failures/s |\n| windows.tcp_conns_resets | ipv4, ipv6 | resets/s |\n| windows.tcp_segments_received | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_sent | ipv4, ipv6 | segments/s |\n| windows.tcp_segments_retransmitted | ipv4, ipv6 | segments/s |\n| windows.os_processes | processes | number |\n| windows.os_users | users | users |\n| windows.os_visible_memory_usage | free, used | bytes |\n| windows.os_paging_files_usage | free, used | bytes |\n| windows.system_threads | threads | number |\n| windows.system_uptime | time | seconds |\n| windows.logon_type_sessions | system, interactive, network, batch, service, proxy, unlock, network_clear_text, new_credentials, remote_interactive, cached_interactive, cached_remote_interactive, cached_unlock | seconds |\n| windows.processes_cpu_utilization | a dimension per process | percentage |\n| windows.processes_handles | a dimension per process | handles |\n| windows.processes_io_bytes | a dimension per process | bytes/s |\n| windows.processes_io_operations | a dimension per process | operations/s |\n| windows.processes_page_faults | a dimension per process | pgfaults/s |\n| windows.processes_page_file_bytes | a dimension per process | bytes |\n| windows.processes_pool_bytes | a dimension per process | bytes |\n| windows.processes_threads | a dimension per process | threads |\n| ad.database_operations | add, delete, modify, recycle | operations/s |\n| ad.directory_operations | read, write, search | operations/s |\n| ad.name_cache_lookups | lookups | lookups/s |\n| ad.name_cache_hits | hits | hits/s |\n| ad.atq_average_request_latency | time | seconds |\n| ad.atq_outstanding_requests | outstanding | requests |\n| ad.dra_replication_intersite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_intrasite_compressed_traffic | inbound, outbound | bytes/s |\n| ad.dra_replication_sync_objects_remaining | inbound, outbound | objects |\n| ad.dra_replication_objects_filtered | inbound, outbound | objects/s |\n| ad.dra_replication_properties_updated | inbound, outbound | properties/s |\n| ad.dra_replication_properties_filtered | inbound, outbound | properties/s |\n| ad.dra_replication_pending_syncs | pending | syncs |\n| ad.dra_replication_sync_requests | requests | requests/s |\n| ad.ds_threads | in_use | threads |\n| ad.ldap_last_bind_time | last_bind | seconds |\n| ad.binds | binds | binds/s |\n| ad.ldap_searches | searches | searches/s |\n| adfs.ad_login_connection_failures | connection | failures/s |\n| adfs.certificate_authentications | authentications | authentications/s |\n| adfs.db_artifact_failures | connection | failures/s |\n| adfs.db_artifact_query_time_seconds | query_time | seconds/s |\n| adfs.db_config_failures | connection | failures/s |\n| adfs.db_config_query_time_seconds | query_time | seconds/s |\n| adfs.device_authentications | authentications | authentications/s |\n| adfs.external_authentications | success, failure | authentications/s |\n| adfs.federated_authentications | authentications | authentications/s |\n| adfs.federation_metadata_requests | requests | requests/s |\n| adfs.oauth_authorization_requests | requests | requests/s |\n| adfs.oauth_client_authentications | success, failure | authentications/s |\n| adfs.oauth_client_credentials_requests | success, failure | requests/s |\n| adfs.oauth_client_privkey_jwt_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_basic_authentications | success, failure | authentications/s |\n| adfs.oauth_client_secret_post_authentications | success, failure | authentications/s |\n| adfs.oauth_client_windows_authentications | success, failure | authentications/s |\n| adfs.oauth_logon_certificate_requests | success, failure | requests/s |\n| adfs.oauth_password_grant_requests | success, failure | requests/s |\n| adfs.oauth_token_requests_success | success | requests/s |\n| adfs.passive_requests | passive | requests/s |\n| adfs.passport_authentications | passport | authentications/s |\n| adfs.password_change_requests | success, failure | requests/s |\n| adfs.samlp_token_requests_success | success | requests/s |\n| adfs.sso_authentications | success, failure | authentications/s |\n| adfs.token_requests | requests | requests/s |\n| adfs.userpassword_authentications | success, failure | authentications/s |\n| adfs.windows_integrated_authentications | authentications | authentications/s |\n| adfs.wsfed_token_requests_success | success | requests/s |\n| adfs.wstrust_token_requests_success | success | requests/s |\n| exchange.activesync_ping_cmds_pending | pending | commands |\n| exchange.activesync_requests | received | requests/s |\n| exchange.activesync_sync_cmds | processed | commands/s |\n| exchange.autodiscover_requests | processed | requests/s |\n| exchange.avail_service_requests | serviced | requests/s |\n| exchange.owa_current_unique_users | logged-in | users |\n| exchange.owa_requests_total | handled | requests/s |\n| exchange.rpc_active_user_count | active | users |\n| exchange.rpc_avg_latency | latency | seconds |\n| exchange.rpc_connection_count | connections | connections |\n| exchange.rpc_operations | operations | operations/s |\n| exchange.rpc_requests | processed | requests |\n| exchange.rpc_user_count | users | users |\n| exchange.transport_queues_active_mail_box_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_external_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_active_remote_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_internal_largest_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_retry_mailbox_delivery | low, high, none, normal | messages/s |\n| exchange.transport_queues_poison | low, high, none, normal | messages/s |\n| hyperv.vms_health | ok, critical | vms |\n| hyperv.root_partition_device_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_pages | 4K, 2M, 1G | pages |\n| hyperv.root_partition_gpa_space_modifications | gpa | modifications/s |\n| hyperv.root_partition_attached_devices | attached | devices |\n| hyperv.root_partition_deposited_pages | deposited | pages |\n| hyperv.root_partition_skipped_interrupts | skipped | interrupts |\n| hyperv.root_partition_device_dma_errors | illegal_dma | requests |\n| hyperv.root_partition_device_interrupt_errors | illegal_interrupt | requests |\n| hyperv.root_partition_device_interrupt_throttle_events | throttling | events |\n| hyperv.root_partition_io_tlb_flush | flushes | flushes/s |\n| hyperv.root_partition_address_space | address_spaces | address spaces |\n| hyperv.root_partition_virtual_tlb_flush_entries | flushes | flushes/s |\n| hyperv.root_partition_virtual_tlb_pages | used | pages |\n\n### Per cpu core\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| core | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.cpu_core_utilization | dpc, user, privileged, interrupt | percentage |\n| windows.cpu_core_interrupts | interrupts | interrupts/s |\n| windows.cpu_core_dpcs | dpcs | dpcs/s |\n| windows.cpu_core_cstate | c1, c2, c3 | percentage |\n\n### Per logical disk\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| disk | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.logical_disk_utilization | free, used | bytes |\n| windows.logical_disk_bandwidth | read, write | bytes/s |\n| windows.logical_disk_operations | reads, writes | operations/s |\n| windows.logical_disk_latency | read, write | seconds |\n\n### Per network device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| nic | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.net_nic_bandwidth | received, sent | kilobits/s |\n| windows.net_nic_packets | received, sent | packets/s |\n| windows.net_nic_errors | inbound, outbound | errors/s |\n| windows.net_nic_discarded | inbound, outbound | discards/s |\n\n### Per thermalzone\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| thermalzone | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.thermalzone_temperature | temperature | celsius |\n\n### Per service\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| service | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| windows.service_state | running, stopped, start_pending, stop_pending, continue_pending, pause_pending, paused, unknown | state |\n| windows.service_status | ok, error, unknown, degraded, pred_fail, starting, stopping, service, stressed, nonrecover, no_contact, lost_comm | status |\n\n### Per website\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| website | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| iis.website_traffic | received, sent | bytes/s |\n| iis.website_requests_rate | requests | requests/s |\n| iis.website_active_connections_count | active | connections |\n| iis.website_users_count | anonymous, non_anonymous | users |\n| iis.website_connection_attempts_rate | connection | attempts/s |\n| iis.website_isapi_extension_requests_count | isapi | requests |\n| iis.website_isapi_extension_requests_rate | isapi | requests/s |\n| iis.website_ftp_file_transfer_rate | received, sent | files/s |\n| iis.website_logon_attempts_rate | logon | attempts/s |\n| iis.website_errors_rate | document_locked, document_not_found | errors/s |\n| iis.website_uptime | document_locked, document_not_found | seconds |\n\n### Per mssql instance\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.instance_accessmethods_page_splits | page | splits/s |\n| mssql.instance_cache_hit_ratio | hit_ratio | percentage |\n| mssql.instance_bufman_checkpoint_pages | flushed | pages/s |\n| mssql.instance_bufman_page_life_expectancy | life_expectancy | seconds |\n| mssql.instance_bufman_iops | read, written | iops |\n| mssql.instance_blocked_processes | blocked | processes |\n| mssql.instance_user_connection | user | connections |\n| mssql.instance_locks_lock_wait | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_locks_deadlocks | alloc_unit, application, database, extent, file, hobt, key, metadata, oib, object, page, rid, row_group, xact | locks/s |\n| mssql.instance_memmgr_connection_memory_bytes | memory | bytes |\n| mssql.instance_memmgr_external_benefit_of_memory | benefit | bytes |\n| mssql.instance_memmgr_pending_memory_grants | pending | processes |\n| mssql.instance_memmgr_server_memory | memory | bytes |\n| mssql.instance_sql_errors | db_offline, info, kill_connection, user | errors |\n| mssql.instance_sqlstats_auto_parameterization_attempts | failed | attempts/s |\n| mssql.instance_sqlstats_batch_requests | batch | requests/s |\n| mssql.instance_sqlstats_safe_auto_parameterization_attempts | safe | attempts/s |\n| mssql.instance_sqlstats_sql_compilations | compilations | compilations/s |\n| mssql.instance_sqlstats_sql_recompilations | recompiles | recompiles/s |\n\n### Per database\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| mssql_instance | TBD |\n| database | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mssql.database_active_transactions | active | transactions |\n| mssql.database_backup_restore_operations | backup | operations/s |\n| mssql.database_data_files_size | size | bytes |\n| mssql.database_log_flushed | flushed | bytes/s |\n| mssql.database_log_flushes | log | flushes/s |\n| mssql.database_transactions | transactions | transactions/s |\n| mssql.database_write_transactions | write | transactions/s |\n\n### Per certificate template\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cert_template | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adcs.cert_template_requests | requests | requests/s |\n| adcs.cert_template_failed_requests | failed | requests/s |\n| adcs.cert_template_issued_requests | issued | requests/s |\n| adcs.cert_template_pending_requests | pending | requests/s |\n| adcs.cert_template_request_processing_time | processing_time | seconds |\n| adcs.cert_template_retrievals | retrievals | retrievals/s |\n| adcs.cert_template_retrieval_processing_time | processing_time | seconds |\n| adcs.cert_template_request_cryptographic_signing_time | singing_time | seconds |\n| adcs.cert_template_request_policy_module_processing | processing_time | seconds |\n| adcs.cert_template_challenge_responses | challenge | responses/s |\n| adcs.cert_template_challenge_response_processing_time | processing_time | seconds |\n| adcs.cert_template_signed_certificate_timestamp_lists | processed | lists/s |\n| adcs.cert_template_signed_certificate_timestamp_list_processing_time | processing_time | seconds |\n\n### Per process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| process | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netframework.clrexception_thrown | exceptions | exceptions/s |\n| netframework.clrexception_filters | filters | filters/s |\n| netframework.clrexception_finallys | finallys | finallys/s |\n| netframework.clrexception_throw_to_catch_depth | traversed | stack_frames/s |\n| netframework.clrinterop_com_callable_wrappers | com_callable_wrappers | ccw/s |\n| netframework.clrinterop_interop_marshallings | marshallings | marshallings/s |\n| netframework.clrinterop_interop_stubs_created | created | stubs/s |\n| netframework.clrjit_methods | jit-compiled | methods/s |\n| netframework.clrjit_time | time | percentage |\n| netframework.clrjit_standard_failures | failures | failures/s |\n| netframework.clrjit_il_bytes | compiled_msil | bytes/s |\n| netframework.clrloading_loader_heap_size | committed | bytes |\n| netframework.clrloading_appdomains_loaded | loaded | domain/s |\n| netframework.clrloading_appdomains_unloaded | unloaded | domain/s |\n| netframework.clrloading_assemblies_loaded | loaded | assemblies/s |\n| netframework.clrloading_classes_loaded | loaded | classes/s |\n| netframework.clrloading_class_load_failures | class_load | failures/s |\n| netframework.clrlocksandthreads_queue_length | threads | threads/s |\n| netframework.clrlocksandthreads_current_logical_threads | logical | threads |\n| netframework.clrlocksandthreads_current_physical_threads | physical | threads |\n| netframework.clrlocksandthreads_recognized_threads | threads | threads/s |\n| netframework.clrlocksandthreads_contentions | contentions | contentions/s |\n| netframework.clrmemory_allocated_bytes | allocated | bytes/s |\n| netframework.clrmemory_finalization_survivors | survived | objects |\n| netframework.clrmemory_heap_size | heap | bytes |\n| netframework.clrmemory_promoted | promoted | bytes |\n| netframework.clrmemory_number_gc_handles | used | handles |\n| netframework.clrmemory_collections | gc | gc/s |\n| netframework.clrmemory_induced_gc | gc | gc/s |\n| netframework.clrmemory_number_pinned_objects | pinned | objects |\n| netframework.clrmemory_number_sink_blocks_in_use | used | blocks |\n| netframework.clrmemory_committed | committed | bytes |\n| netframework.clrmemory_reserved | reserved | bytes |\n| netframework.clrmemory_gc_time | time | percentage |\n| netframework.clrremoting_channels | registered | channels/s |\n| netframework.clrremoting_context_bound_classes_loaded | loaded | classes |\n| netframework.clrremoting_context_bound_objects | allocated | objects/s |\n| netframework.clrremoting_context_proxies | objects | objects/s |\n| netframework.clrremoting_contexts | contexts | contexts |\n| netframework.clrremoting_remote_calls | rpc | calls/s |\n| netframework.clrsecurity_link_time_checks | linktime | checks/s |\n| netframework.clrsecurity_checks_time | time | percentage |\n| netframework.clrsecurity_stack_walk_depth | stack | depth |\n| netframework.clrsecurity_runtime_checks | runtime | checks/s |\n\n### Per exchange workload\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.workload_active_tasks | active | tasks |\n| exchange.workload_completed_tasks | completed | tasks/s |\n| exchange.workload_queued_tasks | queued | tasks/s |\n| exchange.workload_yielded_tasks | yielded | tasks/s |\n| exchange.workload_activity_status | active, paused | status |\n\n### Per ldap process\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.ldap_long_running_ops_per_sec | long-running | operations/s |\n| exchange.ldap_read_time | read | seconds |\n| exchange.ldap_search_time | search | seconds |\n| exchange.ldap_write_time | write | seconds |\n| exchange.ldap_timeout_errors | timeout | errors/s |\n\n### Per http proxy\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| workload | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exchange.http_proxy_avg_auth_latency | latency | seconds |\n| exchange.http_proxy_avg_cas_processing_latency_sec | latency | seconds |\n| exchange.http_proxy_mailbox_proxy_failure_rate | failures | percentage |\n| exchange.http_proxy_mailbox_server_locator_avg_latency_sec | latency | seconds |\n| exchange.http_proxy_outstanding_proxy_requests | outstanding | requests |\n| exchange.http_proxy_requests | processed | requests/s |\n\n### Per vm\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_name | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_cpu_usage | gues, hypervisor, remote | percentage |\n| hyperv.vm_memory_physical | assigned_memory | MiB |\n| hyperv.vm_memory_physical_guest_visible | visible_memory | MiB |\n| hyperv.vm_memory_pressure_current | pressure | percentage |\n| hyperv.vm_vid_physical_pages_allocated | allocated | pages |\n| hyperv.vm_vid_remote_physical_pages | remote_physical | pages |\n\n### Per vm device\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_device_bytes | read, written | bytes/s |\n| hyperv.vm_device_operations | read, write | operations/s |\n| hyperv.vm_device_errors | errors | errors/s |\n\n### Per vm interface\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vm_interface | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vm_interface_bytes | received, sent | bytes/s |\n| hyperv.vm_interface_packets | received, sent | packets/s |\n| hyperv.vm_interface_packets_dropped | incoming, outgoing | drops/s |\n\n### Per vswitch\n\nTBD\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| vswitch | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hyperv.vswitch_bytes | received, sent | bytes/s |\n| hyperv.vswitch_packets | received, sent | packets/s |\n| hyperv.vswitch_directed_packets | received, sent | packets/s |\n| hyperv.vswitch_broadcast_packets | received, sent | packets/s |\n| hyperv.vswitch_multicast_packets | received, sent | packets/s |\n| hyperv.vswitch_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_extensions_dropped_packets | incoming, outgoing | drops/s |\n| hyperv.vswitch_packets_flooded | flooded | packets/s |\n| hyperv.vswitch_learned_mac_addresses | learned | mac addresses/s |\n| hyperv.vswitch_purged_mac_addresses | purged | mac addresses/s |\n\n", "integration_type": "collector", "id": "go.d.plugin-windows-Windows", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/windows/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "wireguard", "monitored_instance": {"name": "WireGuard", "link": "https://www.wireguard.com/", "categories": ["data-collection.vpns"], "icon_filename": "wireguard.svg"}, "keywords": ["wireguard", "vpn", "security"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# WireGuard\n\n## Overview\n\nThis collector monitors WireGuard VPN devices and peers traffic.\n\n\nIt connects to the local WireGuard instance using [wireguard-go client](https://github.com/WireGuard/wireguard-go).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThis collector requires the CAP_NET_ADMIN capability, but it is set automatically during installation, so no manual configuration is needed.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt automatically detects instances running on localhost.\n\n\n#### Limits\n\nDoesn't work if Netdata or WireGuard is installed in the container.\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/wireguard.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/wireguard.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `wireguard` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m wireguard\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per device\n\nThese metrics refer to the VPN network interface.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | VPN network interface |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireguard.device_network_io | receive, transmit | B/s |\n| wireguard.device_peers | peers | peers |\n\n### Per peer\n\nThese metrics refer to the VPN peer.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | VPN network interface |\n| public_key | Public key of a peer |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireguard.peer_network_io | receive, transmit | B/s |\n| wireguard.peer_latest_handshake_ago | time | seconds |\n\n", "integration_type": "collector", "id": "go.d.plugin-wireguard-WireGuard", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/wireguard/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "x509check", "monitored_instance": {"name": "X.509 certificate", "link": "", "categories": ["data-collection.synthetic-checks"], "icon_filename": "lock.svg"}, "keywords": ["x509", "certificate"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": []}}}, "overview": "# X.509 certificate\n\n## Overview\n\n\n\nThis collectors monitors x509 certificates expiration time and revocation status.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/x509check.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/x509check.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| source | Certificate source. Allowed schemes: https, tcp, tcp4, tcp6, udp, udp4, udp6, file. | | False |\n| days_until_expiration_warning | Number of days before the alarm status is warning. | | False |\n| days_until_expiration_critical | Number of days before the alarm status is critical. | | False |\n| check_revocation_status | Whether to check the revocation status of the certificate. | | False |\n| timeout | SSL connection timeout. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Website certificate\n\nWebsite certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_site_cert\n source: https://my_site.org:443\n\n```\n{% /details %}\n##### Local file certificate\n\nLocal file certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_file_cert\n source: file:///home/me/cert.pem\n\n```\n{% /details %}\n##### SMTP certificate\n\nSMTP certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_smtp_cert\n source: smtp://smtp.my_mail.org:587\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define more than one job, their names must be unique.\n\nCheck the expiration status of the multiple websites' certificates.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: my_site_cert1\n source: https://my_site1.org:443\n\n - name: my_site_cert2\n source: https://my_site1.org:443\n\n - name: my_site_cert3\n source: https://my_site3.org:443\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `x509check` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m x509check\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ x509check_days_until_expiration ](https://github.com/netdata/netdata/blob/master/health/health.d/x509check.conf) | x509check.time_until_expiration | time until x509 certificate expires |\n| [ x509check_revocation_status ](https://github.com/netdata/netdata/blob/master/health/health.d/x509check.conf) | x509check.revocation_status | x509 certificate revocation status (0: revoked, 1: valid) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per source\n\nThese metrics refer to the configured source.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| source | Configured source. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| x509check.time_until_expiration | expiry | seconds |\n| x509check.revocation_status | revoked | boolean |\n\n", "integration_type": "collector", "id": "go.d.plugin-x509check-X.509_certificate", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/x509check/metadata.yaml"}, {"meta": {"plugin_name": "go.d.plugin", "module_name": "zookeeper", "monitored_instance": {"name": "ZooKeeper", "link": "https://zookeeper.apache.org/", "categories": ["data-collection.service-discovery-registry"], "icon_filename": "zookeeper.svg"}, "keywords": ["zookeeper"], "most_popular": false, "info_provided_to_referring_integrations": {"description": ""}, "related_resources": {"integrations": {"list": [{"plugin_name": "apps.plugin", "module_name": "apps"}]}}}, "overview": "# ZooKeeper\n\n## Overview\n\n\n\nIt connects to the Zookeeper instance via a TCP and executes the following commands:\n\n- [mntr](https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_zkCommands).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, it detects instances running on localhost by attempting to connect using known ZooKeeper TCP sockets:\n\n- 127.0.0.1:2181\n- 127.0.0.1:2182\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Whitelist `mntr` command\n\nAdd `mntr` to Zookeeper's [4lw.commands.whitelist](https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_4lw).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `go.d/zookeeper.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config go.d/zookeeper.conf\n```\n#### Options\n\nThe following options can be defined globally: update_every, autodetection_retry.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | | False |\n| address | Server address. The format is IP:PORT. | | True |\n| timeout | Connection/read/write/ssl handshake timeout. | | False |\n| use_tls | Whether to use TLS or not. | | False |\n| tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | | False |\n| tls_ca | Certification authority that the client uses when verifying the server's certificates. | | False |\n| tls_cert | Client TLS certificate. | | False |\n| tls_key | Client TLS key. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nLocal server.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n\n```\n{% /details %}\n##### TLS with self-signed certificate\n\nZookeeper with TLS and self-signed certificate.\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n use_tls: yes\n tls_skip_verify: yes\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\njobs:\n - name: local\n address: 127.0.0.1:2181\n\n - name: remote\n address: 192.0.2.1:2181\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `zookeeper` collector, run the `go.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `go.d.plugin` to debug the collector:\n\n ```bash\n ./go.d.plugin -d -m zookeeper\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ZooKeeper instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zookeeper.requests | outstanding | requests |\n| zookeeper.requests_latency | min, avg, max | ms |\n| zookeeper.connections | alive | connections |\n| zookeeper.packets | received, sent | pps |\n| zookeeper.file_descriptor | open | file descriptors |\n| zookeeper.nodes | znode, ephemerals | nodes |\n| zookeeper.watches | watches | watches |\n| zookeeper.approximate_data_size | size | KiB |\n| zookeeper.server_state | state | state |\n\n", "integration_type": "collector", "id": "go.d.plugin-zookeeper-ZooKeeper", "related_resources": "", "edit_link": "https://github.com/netdata/go.d.plugin/blob/master/modules/zookeeper/metadata.yaml"}, {"meta": {"plugin_name": "idlejitter.plugin", "module_name": "idlejitter.plugin", "monitored_instance": {"name": "Idle OS Jitter", "link": "", "categories": ["data-collection.synthetic-checks"], "icon_filename": "syslog.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["latency", "jitter"], "most_popular": false}, "overview": "# Idle OS Jitter\n\n## Overview\n\nMonitor delays in timing for user processes caused by scheduling limitations to optimize the system to run latency sensitive applications with minimal jitter, improving consistency and quality of service.\n\n\nA thread is spawned that requests to sleep for fixed amount of time. When the system wakes it up, it measures how many microseconds have passed. The difference between the requested and the actual duration of the sleep, is the idle jitter. This is done dozens of times per second to ensure we have a representative sample.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration will run by default on all supported systems.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThis integration only supports a single configuration option, and most users will not need to change it.\n\n\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| loop time in ms | Specifies the target time for the data collection thread to sleep, measured in miliseconds.\n | | False |\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Idle OS Jitter instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.idlejitter | min, max, average | microseconds lost/s |\n\n", "integration_type": "collector", "id": "idlejitter.plugin-idlejitter.plugin-Idle_OS_Jitter", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/idlejitter.plugin/metadata.yaml"}, {"meta": {"plugin_name": "ioping.plugin", "module_name": "ioping.plugin", "monitored_instance": {"name": "IOPing", "link": "https://github.com/koct9i/ioping", "categories": ["data-collection.synthetic-checks"], "icon_filename": "syslog.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# IOPing\n\n## Overview\n\nMonitor IOPing metrics for efficient disk I/O latency tracking. Keep track of read/write speeds, latency, and error rates for optimized disk operations.\n\nPlugin uses `ioping` command.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install ioping\n\nYou can install the command by passing the argument `install` to the plugin (`/usr/libexec/netdata/plugins.d/ioping.plugin install`).\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `ioping.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config ioping.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Data collection frequency. | | False |\n| destination | The directory/file/device to ioping. | | True |\n| request_size | The request size in bytes to ioping the destination (symbolic modifiers are supported) | | False |\n| ioping_opts | Options passed to `ioping` commands. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\nThis example has the minimum configuration necessary to have the plugin running.\n\n{% details summary=\"Config\" %}\n```yaml\ndestination=\"/dev/sda\"\n\n```\n{% /details %}\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ioping_disk_latency ](https://github.com/netdata/netdata/blob/master/health/health.d/ioping.conf) | ioping.latency | average I/O latency over the last 10 seconds |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ioping.latency | latency | microseconds |\n\n", "integration_type": "collector", "id": "ioping.plugin-ioping.plugin-IOPing", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/ioping.plugin/metadata.yaml"}, {"meta": {"plugin_name": "macos.plugin", "module_name": "mach_smi", "monitored_instance": {"name": "macOS", "link": "https://www.apple.com/macos", "categories": ["data-collection.macos-systems"], "icon_filename": "macos.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["macos", "apple", "darwin"], "most_popular": false}, "overview": "# macOS\n\n## Overview\n\nMonitor macOS metrics for efficient operating system performance.\n\nThe plugin uses three different methods to collect data:\n - The function `sysctlbyname` is called to collect network, swap, loadavg, and boot time.\n - The functtion `host_statistic` is called to collect CPU and Virtual memory data;\n - The function `IOServiceGetMatchingServices` to collect storage information.\n\n\nThis collector is only supported on the following platforms:\n\n- macOS\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nThere are three sections in the file which you can configure:\n\n- `[plugin:macos:sysctl]` - Enable or disable monitoring for network, swap, loadavg, and boot time.\n- `[plugin:macos:mach_smi]` - Enable or disable monitoring for CPU and Virtual memory.\n- `[plugin:macos:iokit]` - Enable or disable monitoring for storage device.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enable load average | Enable or disable monitoring of load average metrics (load1, load5, load15). | | False |\n| system swap | Enable or disable monitoring of system swap metrics (free, used). | | False |\n| bandwidth | Enable or disable monitoring of network bandwidth metrics (received, sent). | | False |\n| ipv4 TCP packets | Enable or disable monitoring of IPv4 TCP total packets metrics (received, sent). | | False |\n| ipv4 TCP errors | Enable or disable monitoring of IPv4 TCP packets metrics (Input Errors, Checksum, Retransmission segments). | | False |\n| ipv4 TCP handshake issues | Enable or disable monitoring of IPv4 TCP handshake metrics (Established Resets, Active Opens, Passive Opens, Attempt Fails). | | False |\n| ECN packets | Enable or disable monitoring of ECN statistics metrics (InCEPkts, InNoECTPkts). | | False |\n| TCP SYN cookies | Enable or disable monitoring of TCP SYN cookies metrics (received, sent, failed). | | False |\n| TCP out-of-order queue | Enable or disable monitoring of TCP out-of-order queue metrics (inqueue). | | False |\n| TCP connection aborts | Enable or disable monitoring of TCP connection aborts metrics (Bad Data, User closed, No memory, Timeout). | | False |\n| ipv4 UDP packets | Enable or disable monitoring of ipv4 UDP packets metrics (sent, received.). | | False |\n| ipv4 UDP errors | Enable or disable monitoring of ipv4 UDP errors metrics (Recieved Buffer error, Input Errors, No Ports, IN Checksum Errors, Ignore Multi). | | False |\n| ipv4 icmp packets | Enable or disable monitoring of IPv4 ICMP packets metrics (sent, received, in error, OUT error, IN Checksum error). | | False |\n| ipv4 icmp messages | Enable or disable monitoring of ipv4 ICMP messages metrics (I/O messages, I/O Errors, In Checksum). | | False |\n| ipv4 packets | Enable or disable monitoring of ipv4 packets metrics (received, sent, forwarded, delivered). | | False |\n| ipv4 fragments sent | Enable or disable monitoring of IPv4 fragments sent metrics (ok, fails, creates). | | False |\n| ipv4 fragments assembly | Enable or disable monitoring of IPv4 fragments assembly metrics (ok, failed, all). | | False |\n| ipv4 errors | Enable or disable monitoring of IPv4 errors metrics (I/O discard, I/O HDR errors, In Addr errors, In Unknown protos, OUT No Routes). | | False |\n| ipv6 packets | Enable or disable monitoring of IPv6 packets metrics (received, sent, forwarded, delivered). | | False |\n| ipv6 fragments sent | Enable or disable monitoring of IPv6 fragments sent metrics (ok, failed, all). | | False |\n| ipv6 fragments assembly | Enable or disable monitoring of IPv6 fragments assembly metrics (ok, failed, timeout, all). | | False |\n| ipv6 errors | Enable or disable monitoring of IPv6 errors metrics (I/O Discards, In Hdr Errors, In Addr Errors, In Truncaedd Packets, I/O No Routes). | | False |\n| icmp | Enable or disable monitoring of ICMP metrics (sent, received). | | False |\n| icmp redirects | Enable or disable monitoring of ICMP redirects metrics (received, sent). | | False |\n| icmp errors | Enable or disable monitoring of ICMP metrics (I/O Errors, In Checksums, In Destination Unreachable, In Packet too big, In Time Exceeds, In Parm Problem, Out Dest Unreachable, Out Timee Exceeds, Out Parm Problems.). | | False |\n| icmp echos | Enable or disable monitoring of ICMP echos metrics (I/O Echos, I/O Echo Reply). | | False |\n| icmp router | Enable or disable monitoring of ICMP router metrics (I/O Solicits, I/O Advertisements). | | False |\n| icmp neighbor | Enable or disable monitoring of ICMP neighbor metrics (I/O Solicits, I/O Advertisements). | | False |\n| icmp types | Enable or disable monitoring of ICMP types metrics (I/O Type1, I/O Type128, I/O Type129, Out Type133, Out Type135, In Type136, Out Type145). | | False |\n| space usage for all disks | Enable or disable monitoring of space usage for all disks metrics (available, used, reserved for root). | | False |\n| inodes usage for all disks | Enable or disable monitoring of inodes usage for all disks metrics (available, used, reserved for root). | | False |\n| bandwidth | Enable or disable monitoring of bandwidth metrics (received, sent). | | False |\n| system uptime | Enable or disable monitoring of system uptime metrics (uptime). | | False |\n| cpu utilization | Enable or disable monitoring of CPU utilization metrics (user, nice, system, idel). | | False |\n| system ram | Enable or disable monitoring of system RAM metrics (Active, Wired, throttled, compressor, inactive, purgeable, speculative, free). | | False |\n| swap i/o | Enable or disable monitoring of SWAP I/O metrics (I/O Swap). | | False |\n| memory page faults | Enable or disable monitoring of memory page faults metrics (memory, cow, I/O page, compress, decompress, zero fill, reactivate, purge). | | False |\n| disk i/o | Enable or disable monitoring of disk I/O metrics (In, Out). | | False |\n\n{% /details %}\n#### Examples\n\n##### Disable swap monitoring.\n\nA basic example that discards swap monitoring\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:macos:sysctl]\n system swap = no\n[plugin:macos:mach_smi]\n swap i/o = no\n\n```\n{% /details %}\n##### Disable complete Machine SMI section.\n\nA basic example that discards swap monitoring\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:macos:mach_smi]\n cpu utilization = no\n system ram = no\n swap i/o = no\n memory page faults = no\n disk i/o = no\n\n```\n{% /details %}\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per macOS instance\n\nThese metrics refer to hardware and network monitoring.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | user, nice, system, idle | percentage |\n| system.ram | active, wired, throttled, compressor, inactive, purgeable, speculative, free | MiB |\n| mem.swapio | io, out | KiB/s |\n| mem.pgfaults | memory, cow, pagein, pageout, compress, decompress, zero_fill, reactivate, purge | faults/s |\n| system.load | load1, load5, load15 | load |\n| mem.swap | free, used | MiB |\n| system.ipv4 | received, sent | kilobits/s |\n| ipv4.tcppackets | received, sent | packets/s |\n| ipv4.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ipv4.tcphandshake | EstabResets, ActiveOpens, PassiveOpens, AttemptFails | events/s |\n| ipv4.tcpconnaborts | baddata, userclosed, nomemory, timeout | connections/s |\n| ipv4.tcpofo | inqueue | packets/s |\n| ipv4.tcpsyncookies | received, sent, failed | packets/s |\n| ipv4.ecnpkts | CEP, NoECTP | packets/s |\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | RcvbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InEchos, OutEchos | packets/s |\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos | packets/s |\n| ipv6.packets | received, sent, forwarded, delivers | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n| system.uptime | uptime | seconds |\n| system.io | in, out | KiB/s |\n\n### Per disk\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | read, writes | KiB/s |\n| disk.ops | read, writes | operations/s |\n| disk.util | utilization | % of time working |\n| disk.iotime | reads, writes | milliseconds/s |\n| disk.await | reads, writes | milliseconds/operation |\n| disk.avgsz | reads, writes | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n\n### Per mount point\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.space | avail, used, reserved_for_root | GiB |\n| disk.inodes | avail, used, reserved_for_root | inodes |\n\n### Per network device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.packets | received, sent, multicast_received, multicast_sent | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound | drops/s |\n| net.events | frames, collisions, carrier | events/s |\n\n", "integration_type": "collector", "id": "macos.plugin-mach_smi-macOS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/macos.plugin/metadata.yaml"}, {"meta": {"plugin_name": "nfacct.plugin", "module_name": "nfacct.plugin", "monitored_instance": {"name": "Netfilter", "link": "https://www.netfilter.org/", "categories": ["data-collection.linux-systems.firewall-metrics"], "icon_filename": "netfilter.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# Netfilter\n\n## Overview\n\nMonitor Netfilter metrics for optimal packet filtering and manipulation. Keep tabs on packet counts, dropped packets, and error rates to secure network operations.\n\nNetdata uses libmnl (https://www.netfilter.org/projects/libmnl/index.html) to collect information.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThis plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis plugin uses socket to connect with netfilter to collect data\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install required packages\n\nInstall `libmnl-dev` and `libnetfilter-acct-dev` using the package manager of your system.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:nfacct]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Additinal parameters for collector | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Netfilter instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.netlink_new | new, ignore, invalid | connections/s |\n| netfilter.netlink_changes | insert, delete, delete_list | changes/s |\n| netfilter.netlink_search | searched, search_restart, found | searches/s |\n| netfilter.netlink_errors | icmp_error, insert_failed, drop, early_drop | events/s |\n| netfilter.netlink_expect | created, deleted, new | expectations/s |\n| netfilter.nfacct_packets | a dimension per nfacct object | packets/s |\n| netfilter.nfacct_bytes | a dimension per nfacct object | kilobytes/s |\n\n", "integration_type": "collector", "id": "nfacct.plugin-nfacct.plugin-Netfilter", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/nfacct.plugin/metadata.yaml"}, {"meta": {"plugin_name": "perf.plugin", "module_name": "perf.plugin", "monitored_instance": {"name": "CPU performance", "link": "https://kernel.org/", "categories": ["data-collection.linux-systems"], "icon_filename": "bolt.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["linux", "cpu performance", "cpu cache", "perf.plugin"], "most_popular": false}, "overview": "# CPU performance\n\n## Overview\n\nThis collector monitors CPU performance metrics about cycles, instructions, migrations, cache operations and more.\n\nIt uses syscall (2) to open a file descriptior to monitor the perf events.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nIt needs setuid to use necessary syscall to collect perf events. Netada sets the permission during installation time.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:perf]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nYou can get the available options running:\n\n```bash\n/usr/libexec/netdata/plugins.d/perf.plugin --help\n````\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| command options | Command options that specify charts shown by plugin. | | True |\n\n{% /details %}\n#### Examples\n\n##### All metrics\n\nMonitor all metrics available.\n\n```yaml\n[plugin:perf]\n command options = all\n\n```\n##### CPU cycles\n\nMonitor CPU cycles.\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:perf]\n command options = cycles\n\n```\n{% /details %}\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per CPU performance instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| perf.cpu_cycles | cpu, ref_cpu | cycles/s |\n| perf.instructions | instructions | instructions/s |\n| perf.instructions_per_cycle | ipc | instructions/cycle |\n| perf.branch_instructions | instructions, misses | instructions/s |\n| perf.cache | references, misses | operations/s |\n| perf.bus_cycles | bus | cycles/s |\n| perf.stalled_cycles | frontend, backend | cycles/s |\n| perf.migrations | migrations | migrations |\n| perf.alignment_faults | faults | faults |\n| perf.emulation_faults | faults | faults |\n| perf.l1d_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.l1d_cache_prefetch | prefetches | prefetches/s |\n| perf.l1i_cache | read_access, read_misses | events/s |\n| perf.ll_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.dtlb_cache | read_access, read_misses, write_access, write_misses | events/s |\n| perf.itlb_cache | read_access, read_misses | events/s |\n| perf.pbu_cache | read_access | events/s |\n\n", "integration_type": "collector", "id": "perf.plugin-perf.plugin-CPU_performance", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/perf.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/diskstats", "monitored_instance": {"name": "Disk Statistics", "link": "", "categories": ["data-collection.linux-systems.disk-metrics"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["disk", "disks", "io", "bcache", "block devices"], "most_popular": false}, "overview": "# Disk Statistics\n\n## Overview\n\nDetailed statistics for each of your system's disk devices and partitions.\nThe data is reported by the kernel and can be used to monitor disk activity on a Linux system.\n\nGet valuable insight into how your disks are performing and where potential bottlenecks might be.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_disk_backlog ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.backlog | average backlog size of the ${label:device} disk over the last 10 minutes |\n| [ 10min_disk_utilization ](https://github.com/netdata/netdata/blob/master/health/health.d/disks.conf) | disk.util | average percentage of time ${label:device} disk was busy over the last 10 minutes |\n| [ bcache_cache_dirty ](https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf) | disk.bcache_cache_alloc | percentage of cache space used for dirty data and metadata (this usually means your SSD cache is too small) |\n| [ bcache_cache_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/bcache.conf) | disk.bcache_cache_read_races | number of times data was read from the cache, the bucket was reused and invalidated in the last 10 minutes (when this occurs the data is reread from the backing device) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Disk Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.io | in, out | KiB/s |\n\n### Per disk\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n| mount_point | TBD |\n| device_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| disk.io | reads, writes | KiB/s |\n| disk_ext.io | discards | KiB/s |\n| disk.ops | reads, writes | operations/s |\n| disk_ext.ops | discards, flushes | operations/s |\n| disk.qops | operations | operations |\n| disk.backlog | backlog | milliseconds |\n| disk.busy | busy | milliseconds |\n| disk.util | utilization | % of time working |\n| disk.mops | reads, writes | merged operations/s |\n| disk_ext.mops | discards | merged operations/s |\n| disk.iotime | reads, writes | milliseconds/s |\n| disk_ext.iotime | discards, flushes | milliseconds/s |\n| disk.await | reads, writes | milliseconds/operation |\n| disk_ext.await | discards, flushes | milliseconds/operation |\n| disk.avgsz | reads, writes | KiB/operation |\n| disk_ext.avgsz | discards | KiB/operation |\n| disk.svctm | svctm | milliseconds/operation |\n| disk.bcache_cache_alloc | ununsed, dirty, clean, metadata, undefined | percentage |\n| disk.bcache_hit_ratio | 5min, 1hour, 1day, ever | percentage |\n| disk.bcache_rates | congested, writeback | KiB/s |\n| disk.bcache_size | dirty | MiB |\n| disk.bcache_usage | avail | percentage |\n| disk.bcache_cache_read_races | races, errors | operations/s |\n| disk.bcache | hits, misses, collisions, readaheads | operations/s |\n| disk.bcache_bypass | hits, misses | operations/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/diskstats-Disk_Statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/interrupts", "monitored_instance": {"name": "Interrupts", "link": "", "categories": ["data-collection.linux-systems.cpu-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["interrupts"], "most_popular": false}, "overview": "# Interrupts\n\n## Overview\n\nMonitors `/proc/interrupts`, a file organized by CPU and then by the type of interrupt.\nThe numbers reported are the counts of the interrupts that have occurred of each type.\n\nAn interrupt is a signal to the processor emitted by hardware or software indicating an event that needs\nimmediate attention. The processor then interrupts its current activities and executes the interrupt handler\nto deal with the event. This is part of the way a computer multitasks and handles concurrent processing.\n\nThe types of interrupts include:\n\n- **I/O interrupts**: These are caused by I/O devices like the keyboard, mouse, printer, etc. For example, when\n you type something on the keyboard, an interrupt is triggered so the processor can handle the new input.\n\n- **Timer interrupts**: These are generated at regular intervals by the system's timer circuit. It's primarily\n used to switch the CPU among different tasks.\n\n- **Software interrupts**: These are generated by a program requiring disk I/O operations, or other system resources.\n\n- **Hardware interrupts**: These are caused by hardware conditions such as power failure, overheating, etc.\n\nMonitoring `/proc/interrupts` can be used for:\n\n- **Performance tuning**: If an interrupt is happening very frequently, it could be a sign that a device is not\n configured correctly, or there is a software bug causing unnecessary interrupts. This could lead to system\n performance degradation.\n\n- **System troubleshooting**: If you're seeing a lot of unexpected interrupts, it could be a sign of a hardware problem.\n\n- **Understanding system behavior**: More generally, keeping an eye on what interrupts are occurring can help you\n understand what your system is doing. It can provide insights into the system's interaction with hardware,\n drivers, and other parts of the kernel.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Interrupts instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.interrupts | a dimension per device | interrupts/s |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.interrupts | a dimension per device | interrupts/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/interrupts-Interrupts", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/loadavg", "monitored_instance": {"name": "System Load Average", "link": "", "categories": ["data-collection.linux-systems.system-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["load", "load average"], "most_popular": false}, "overview": "# System Load Average\n\n## Overview\n\nThe `/proc/loadavg` file provides information about the system load average.\n\nThe load average is a measure of the amount of computational work that a system performs. It is a\nrepresentation of the average system load over a period of time.\n\nThis file contains three numbers representing the system load averages for the last 1, 5, and 15 minutes,\nrespectively. It also includes the currently running processes and the total number of processes.\n\nMonitoring the load average can be used for:\n\n- **System performance**: If the load average is too high, it may indicate that your system is overloaded.\n On a system with a single CPU, if the load average is 1, it means the single CPU is fully utilized. If the\n load averages are consistently higher than the number of CPUs/cores, it may indicate that your system is\n overloaded and tasks are waiting for CPU time.\n\n- **Troubleshooting**: If the load average is unexpectedly high, it can be a sign of a problem. This could be\n due to a runaway process, a software bug, or a hardware issue.\n\n- **Capacity planning**: By monitoring the load average over time, you can understand the trends in your\n system's workload. This can help with capacity planning and scaling decisions.\n\nRemember that load average not only considers CPU usage, but also includes processes waiting for disk I/O.\nTherefore, high load averages could be due to I/O contention as well as CPU contention.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ load_cpu_number ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | number of active CPU cores in the system |\n| [ load_average_15 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system fifteen-minute load average |\n| [ load_average_5 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system five-minute load average |\n| [ load_average_1 ](https://github.com/netdata/netdata/blob/master/health/health.d/load.conf) | system.load | system one-minute load average |\n| [ active_processes ](https://github.com/netdata/netdata/blob/master/health/health.d/processes.conf) | system.active_processes | system process IDs (PID) space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System Load Average instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.load | load1, load5, load15 | load |\n| system.active_processes | active | processes |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/loadavg-System_Load_Average", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/mdstat", "monitored_instance": {"name": "MD RAID", "link": "", "categories": ["data-collection.linux-systems.disk-metrics"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["raid", "mdadm", "mdstat", "raid"], "most_popular": false}, "overview": "# MD RAID\n\n## Overview\n\nThis integration monitors the status of MD RAID devices.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ mdstat_last_collected ](https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf) | md.disks | number of seconds since the last successful data collection |\n| [ mdstat_disks ](https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf) | md.disks | number of devices in the down state for the ${label:device} ${label:raid_level} array. Any number > 0 indicates that the array is degraded. |\n| [ mdstat_mismatch_cnt ](https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf) | md.mismatch_cnt | number of unsynchronized blocks for the ${label:device} ${label:raid_level} array |\n| [ mdstat_nonredundant_last_collected ](https://github.com/netdata/netdata/blob/master/health/health.d/mdstat.conf) | md.nonredundant | number of seconds since the last successful data collection |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MD RAID instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| md.health | a dimension per md array | failed disks |\n\n### Per md array\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n| raid_level | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| md.disks | inuse, down | disks |\n| md.mismatch_cnt | count | unsynchronized blocks |\n| md.status | check, resync, recovery, reshape | percent |\n| md.expected_time_until_operation_finish | finish_in | seconds |\n| md.operation_speed | speed | KiB/s |\n| md.nonredundant | available | boolean |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/mdstat-MD_RAID", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/meminfo", "monitored_instance": {"name": "Memory Usage", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["memory", "ram", "available", "committed"], "most_popular": false}, "overview": "# Memory Usage\n\n## Overview\n\n`/proc/meminfo` provides detailed information about the system's current memory usage. It includes information\nabout different types of memory, RAM, Swap, ZSwap, HugePages, Transparent HugePages (THP), Kernel memory,\nSLAB memory, memory mappings, and more.\n\nMonitoring /proc/meminfo can be useful for:\n\n- **Performance Tuning**: Understanding your system's memory usage can help you make decisions about system\n tuning and optimization. For example, if your system is frequently low on free memory, it might benefit\n from more RAM.\n\n- **Troubleshooting**: If your system is experiencing problems, `/proc/meminfo` can provide clues about\n whether memory usage is a factor. For example, if your system is slow and cached swap is high, it could\n mean that your system is swapping out a lot of memory to disk, which can degrade performance.\n\n- **Capacity Planning**: By monitoring memory usage over time, you can understand trends and make informed\n decisions about future capacity needs.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ram_in_use ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | system.ram | system memory utilization |\n| [ ram_available ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | mem.available | percentage of estimated amount of RAM available for userspace processes, without causing swapping |\n| [ used_swap ](https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf) | mem.swap | swap memory utilization |\n| [ 1hour_memory_hw_corrupted ](https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf) | mem.hwcorrupt | amount of memory corrupted due to a hardware failure |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memory Usage instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ram | free, used, cached, buffers | MiB |\n| mem.available | avail | MiB |\n| mem.swap | free, used | MiB |\n| mem.swap_cached | cached | MiB |\n| mem.zswap | in-ram, on-disk | MiB |\n| mem.hwcorrupt | HardwareCorrupted | MiB |\n| mem.commited | Commited_AS | MiB |\n| mem.writeback | Dirty, Writeback, FuseWriteback, NfsWriteback, Bounce | MiB |\n| mem.kernel | Slab, KernelStack, PageTables, VmallocUsed, Percpu | MiB |\n| mem.slab | reclaimable, unreclaimable | MiB |\n| mem.hugepages | free, used, surplus, reserved | MiB |\n| mem.thp | anonymous, shmem | MiB |\n| mem.thp_details | ShmemPmdMapped, FileHugePages, FilePmdMapped | MiB |\n| mem.reclaiming | Active, Inactive, Active(anon), Inactive(anon), Active(file), Inactive(file), Unevictable, Mlocked | MiB |\n| mem.high_low | high_used, low_used, high_free, low_free | MiB |\n| mem.cma | used, free | MiB |\n| mem.directmaps | 4k, 2m, 4m, 1g | MiB |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/meminfo-Memory_Usage", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/dev", "monitored_instance": {"name": "Network interfaces", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["network interfaces"], "most_popular": false}, "overview": "# Network interfaces\n\n## Overview\n\nMonitor network interface metrics about bandwidth, state, errors and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ interface_speed ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | network interface ${label:device} current speed |\n| [ 1m_received_traffic_overflow ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | average inbound utilization for the network interface ${label:device} over the last minute |\n| [ 1m_sent_traffic_overflow ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.net | average outbound utilization for the network interface ${label:device} over the last minute |\n| [ inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_inbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of inbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ wifi_outbound_packets_dropped_ratio ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of outbound dropped packets for the network interface ${label:device} over the last 10 minutes |\n| [ 1m_received_packets_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | average number of packets received by the network interface ${label:device} over the last minute |\n| [ 10s_received_packets_storm ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.packets | ratio of average number of received packets for the network interface ${label:device} over the last 10 seconds, compared to the rate over the last minute |\n| [ inbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.drops | number of inbound dropped packets for the network interface ${label:device} in the last 10 minutes |\n| [ outbound_packets_dropped ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.drops | number of outbound dropped packets for the network interface ${label:device} in the last 10 minutes |\n| [ 10min_fifo_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/net.conf) | net.fifo | number of FIFO errors for the network interface ${label:device} in the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Network interfaces instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.net | received, sent | kilobits/s |\n\n### Per network device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| interface_type | TBD |\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| net.net | received, sent | kilobits/s |\n| net.speed | speed | kilobits/s |\n| net.duplex | full, half, unknown | state |\n| net.operstate | up, down, notpresent, lowerlayerdown, testing, dormant, unknown | state |\n| net.carrier | up, down | state |\n| net.mtu | mtu | octets |\n| net.packets | received, sent, multicast | packets/s |\n| net.errors | inbound, outbound | errors/s |\n| net.drops | inbound, outbound | drops/s |\n| net.fifo | receive, transmit | errors |\n| net.compressed | received, sent | packets/s |\n| net.events | frames, collisions, carrier | events/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/dev-Network_interfaces", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/ip_vs_stats", "monitored_instance": {"name": "IP Virtual Server", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ip virtual server"], "most_popular": false}, "overview": "# IP Virtual Server\n\n## Overview\n\nThis integration monitors IP Virtual Server statistics\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IP Virtual Server instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipvs.sockets | connections | connections/s |\n| ipvs.packets | received, sent | packets/s |\n| ipvs.net | received, sent | kilobits/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/ip_vs_stats-IP_Virtual_Server", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/netstat", "monitored_instance": {"name": "Network statistics", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ip", "udp", "udplite", "icmp", "netstat", "snmp"], "most_popular": false}, "overview": "# Network statistics\n\n## Overview\n\nThis integration provides metrics from the `netstat`, `snmp` and `snmp6` modules.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1m_tcp_syn_queue_drops ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf) | ip.tcp_syn_queue | average number of SYN requests was dropped due to the full TCP SYN queue over the last minute (SYN cookies were not enabled) |\n| [ 1m_tcp_syn_queue_cookies ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf) | ip.tcp_syn_queue | average number of sent SYN cookies due to the full TCP SYN queue over the last minute |\n| [ 1m_tcp_accept_queue_overflows ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf) | ip.tcp_accept_queue | average number of overflows in the TCP accept queue over the last minute |\n| [ 1m_tcp_accept_queue_drops ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_listen.conf) | ip.tcp_accept_queue | average number of dropped packets in the TCP accept queue over the last minute |\n| [ tcp_connections ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_conn.conf) | ipv4.tcpsock | IPv4 TCP connections utilization |\n| [ 1m_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_sent ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of sent TCP RESETS over the last 10 seconds. This can indicate a port scan, or that a service running on this host has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last minute |\n| [ 10s_ipv4_tcp_resets_received ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_resets.conf) | ipv4.tcphandshake | average number of received TCP RESETS over the last 10 seconds. This can be an indication that a service this host needs has crashed. Netdata will not send a clear notification for this alarm. |\n| [ 1m_ipv4_udp_receive_buffer_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP receive buffer errors over the last minute |\n| [ 1m_ipv4_udp_send_buffer_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/udp_errors.conf) | ipv4.udperrors | average number of UDP send buffer errors over the last minute |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Network statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ip | received, sent | kilobits/s |\n| ip.inerrors | noroutes, truncated, checksum | packets/s |\n| ip.mcast | received, sent | kilobits/s |\n| ip.bcast | received, sent | kilobits/s |\n| ip.mcastpkts | received, sent | packets/s |\n| ip.bcastpkts | received, sent | packets/s |\n| ip.ecnpkts | CEP, NoECTP, ECTP0, ECTP1 | packets/s |\n| ip.tcpmemorypressures | pressures | events/s |\n| ip.tcpconnaborts | baddata, userclosed, nomemory, timeout, linger, failed | connections/s |\n| ip.tcpreorders | timestamp, sack, fack, reno | packets/s |\n| ip.tcpofo | inqueue, dropped, merged, pruned | packets/s |\n| ip.tcpsyncookies | received, sent, failed | packets/s |\n| ip.tcp_syn_queue | drops, cookies | packets/s |\n| ip.tcp_accept_queue | overflows, drops | packets/s |\n| ipv4.packets | received, sent, forwarded, delivered | packets/s |\n| ipv4.fragsout | ok, failed, created | packets/s |\n| ipv4.fragsin | ok, failed, all | packets/s |\n| ipv4.errors | InDiscards, OutDiscards, InHdrErrors, OutNoRoutes, InAddrErrors, InUnknownProtos | packets/s |\n| ipv4.icmp | received, sent | packets/s |\n| ipv4.icmp_errors | InErrors, OutErrors, InCsumErrors | packets/s |\n| ipv4.icmpmsg | InEchoReps, OutEchoReps, InDestUnreachs, OutDestUnreachs, InRedirects, OutRedirects, InEchos, OutEchos, InRouterAdvert, OutRouterAdvert, InRouterSelect, OutRouterSelect, InTimeExcds, OutTimeExcds, InParmProbs, OutParmProbs, InTimestamps, OutTimestamps, InTimestampReps, OutTimestampReps | packets/s |\n| ipv4.tcpsock | connections | active connections |\n| ipv4.tcppackets | received, sent | packets/s |\n| ipv4.tcperrors | InErrs, InCsumErrors, RetransSegs | packets/s |\n| ipv4.tcpopens | active, passive | connections/s |\n| ipv4.tcphandshake | EstabResets, OutRsts, AttemptFails, SynRetrans | events/s |\n| ipv4.udppackets | received, sent | packets/s |\n| ipv4.udperrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv4.udplite | received, sent | packets/s |\n| ipv4.udplite_errors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | packets/s |\n| system.ipv6 | received, sent | kilobits/s |\n| system.ipv6 | received, sent, forwarded, delivers | packets/s |\n| ipv6.fragsout | ok, failed, all | packets/s |\n| ipv6.fragsin | ok, failed, timeout, all | packets/s |\n| ipv6.errors | InDiscards, OutDiscards, InHdrErrors, InAddrErrors, InUnknownProtos, InTooBigErrors, InTruncatedPkts, InNoRoutes, OutNoRoutes | packets/s |\n| ipv6.udppackets | received, sent | packets/s |\n| ipv6.udperrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors, IgnoredMulti | events/s |\n| ipv6.udplitepackets | received, sent | packets/s |\n| ipv6.udpliteerrors | RcvbufErrors, SndbufErrors, InErrors, NoPorts, InCsumErrors | events/s |\n| ipv6.mcast | received, sent | kilobits/s |\n| ipv6.bcast | received, sent | kilobits/s |\n| ipv6.mcastpkts | received, sent | packets/s |\n| ipv6.icmp | received, sent | messages/s |\n| ipv6.icmpredir | received, sent | redirects/s |\n| ipv6.icmperrors | InErrors, OutErrors, InCsumErrors, InDestUnreachs, InPktTooBigs, InTimeExcds, InParmProblems, OutDestUnreachs, OutPktTooBigs, OutTimeExcds, OutParmProblems | errors/s |\n| ipv6.icmpechos | InEchos, OutEchos, InEchoReplies, OutEchoReplies | messages/s |\n| ipv6.groupmemb | InQueries, OutQueries, InResponses, OutResponses, InReductions, OutReductions | messages/s |\n| ipv6.icmprouter | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpneighbor | InSolicits, OutSolicits, InAdvertisements, OutAdvertisements | messages/s |\n| ipv6.icmpmldv2 | received, sent | reports/s |\n| ipv6.icmptypes | InType1, InType128, InType129, InType136, OutType1, OutType128, OutType129, OutType133, OutType135, OutType143 | messages/s |\n| ipv6.ect | InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts | packets/s |\n| ipv6.ect | InNoECTPkts, InECT1Pkts, InECT0Pkts, InCEPkts | packets/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/netstat-Network_statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/rpc/nfs", "monitored_instance": {"name": "NFS Client", "link": "", "categories": ["data-collection.linux-systems.filesystem-metrics.nfs"], "icon_filename": "nfs.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["nfs client", "filesystem"], "most_popular": false}, "overview": "# NFS Client\n\n## Overview\n\nThis integration provides statistics from the Linux kernel's NFS Client.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NFS Client instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nfs.net | udp, tcp | operations/s |\n| nfs.rpc | calls, retransmits, auth_refresh | calls/s |\n| nfs.proc2 | a dimension per proc2 call | calls/s |\n| nfs.proc3 | a dimension per proc3 call | calls/s |\n| nfs.proc4 | a dimension per proc4 call | calls/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/rpc/nfs-NFS_Client", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/rpc/nfsd", "monitored_instance": {"name": "NFS Server", "link": "", "categories": ["data-collection.linux-systems.filesystem-metrics.nfs"], "icon_filename": "nfs.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["nfs server", "filesystem"], "most_popular": false}, "overview": "# NFS Server\n\n## Overview\n\nThis integration provides statistics from the Linux kernel's NFS Server.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per NFS Server instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nfsd.readcache | hits, misses, nocache | reads/s |\n| nfsd.filehandles | stale | handles/s |\n| nfsd.io | read, write | kilobytes/s |\n| nfsd.threads | threads | threads |\n| nfsd.net | udp, tcp | packets/s |\n| nfsd.rpc | calls, bad_format, bad_auth | calls/s |\n| nfsd.proc2 | a dimension per proc2 call | calls/s |\n| nfsd.proc3 | a dimension per proc3 call | calls/s |\n| nfsd.proc4 | a dimension per proc4 call | calls/s |\n| nfsd.proc4ops | a dimension per proc4 operation | operations/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/rpc/nfsd-NFS_Server", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/sctp/snmp", "monitored_instance": {"name": "SCTP Statistics", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["sctp", "stream control transmission protocol"], "most_popular": false}, "overview": "# SCTP Statistics\n\n## Overview\n\nThis integration provides statistics about the Stream Control Transmission Protocol (SCTP).\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SCTP Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sctp.established | established | associations |\n| sctp.transitions | active, passive, aborted, shutdown | transitions/s |\n| sctp.packets | received, sent | packets/s |\n| sctp.packet_errors | invalid, checksum | packets/s |\n| sctp.fragmentation | reassembled, fragmented | packets/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/sctp/snmp-SCTP_Statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/sockstat", "monitored_instance": {"name": "Socket statistics", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["sockets"], "most_popular": false}, "overview": "# Socket statistics\n\n## Overview\n\nThis integration provides socket statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ tcp_orphans ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_orphans.conf) | ipv4.sockstat_tcp_sockets | orphan IPv4 TCP sockets utilization |\n| [ tcp_memory ](https://github.com/netdata/netdata/blob/master/health/health.d/tcp_mem.conf) | ipv4.sockstat_tcp_mem | TCP memory utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Socket statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv4.sockstat_sockets | used | sockets |\n| ipv4.sockstat_tcp_sockets | alloc, orphan, inuse, timewait | sockets |\n| ipv4.sockstat_tcp_mem | mem | KiB |\n| ipv4.sockstat_udp_sockets | inuse | sockets |\n| ipv4.sockstat_udp_mem | mem | sockets |\n| ipv4.sockstat_udplite_sockets | inuse | sockets |\n| ipv4.sockstat_raw_sockets | inuse | sockets |\n| ipv4.sockstat_frag_sockets | inuse | fragments |\n| ipv4.sockstat_frag_mem | mem | KiB |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/sockstat-Socket_statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/sockstat6", "monitored_instance": {"name": "IPv6 Socket Statistics", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ipv6 sockets"], "most_popular": false}, "overview": "# IPv6 Socket Statistics\n\n## Overview\n\nThis integration provides IPv6 socket statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPv6 Socket Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipv6.sockstat6_tcp_sockets | inuse | sockets |\n| ipv6.sockstat6_udp_sockets | inuse | sockets |\n| ipv6.sockstat6_udplite_sockets | inuse | sockets |\n| ipv6.sockstat6_raw_sockets | inuse | sockets |\n| ipv6.sockstat6_frag_sockets | inuse | fragments |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/sockstat6-IPv6_Socket_Statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/softnet_stat", "monitored_instance": {"name": "Softnet Statistics", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["softnet"], "most_popular": false}, "overview": "# Softnet Statistics\n\n## Overview\n\n`/proc/net/softnet_stat` provides statistics that relate to the handling of network packets by softirq.\n\nIt provides information about:\n\n- Total number of processed packets (`processed`).\n- Times ksoftirq ran out of quota (`dropped`).\n- Times net_rx_action was rescheduled.\n- Number of times processed all lists before quota.\n- Number of times did not process all lists due to quota.\n- Number of times net_rx_action was rescheduled for GRO (Generic Receive Offload) cells.\n- Number of times GRO cells were processed.\n\nMonitoring the /proc/net/softnet_stat file can be useful for:\n\n- **Network performance monitoring**: By tracking the total number of processed packets and how many packets\n were dropped, you can gain insights into your system's network performance.\n\n- **Troubleshooting**: If you're experiencing network-related issues, this collector can provide valuable clues.\n For instance, a high number of dropped packets may indicate a network problem.\n\n- **Capacity planning**: If your system is consistently processing near its maximum capacity of network\n packets, it might be time to consider upgrading your network infrastructure.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 1min_netdev_backlog_exceeded ](https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf) | system.softnet_stat | average number of dropped packets in the last minute due to exceeded net.core.netdev_max_backlog |\n| [ 1min_netdev_budget_ran_outs ](https://github.com/netdata/netdata/blob/master/health/health.d/softnet.conf) | system.softnet_stat | average number of times ksoftirq ran out of sysctl net.core.netdev_budget or net.core.netdev_budget_usecs with work remaining over the last minute (this can be a cause for dropped packets) |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Softnet Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softnet_stat | processed, dropped, squeezed, received_rps, flow_limit_count | events/s |\n\n### Per cpu core\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softnet_stat | processed, dropped, squeezed, received_rps, flow_limit_count | events/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/softnet_stat-Softnet_Statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/stat/nf_conntrack", "monitored_instance": {"name": "Conntrack", "link": "", "categories": ["data-collection.linux-systems.firewall-metrics"], "icon_filename": "firewall.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["connection tracking mechanism", "netfilter", "conntrack"], "most_popular": false}, "overview": "# Conntrack\n\n## Overview\n\nThis integration monitors the connection tracking mechanism of Netfilter in the Linux Kernel.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ netfilter_conntrack_full ](https://github.com/netdata/netdata/blob/master/health/health.d/netfilter.conf) | netfilter.conntrack_sockets | netfilter connection tracker table size utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Conntrack instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.conntrack_sockets | connections | active connections |\n| netfilter.conntrack_new | new, ignore, invalid | connections/s |\n| netfilter.conntrack_changes | inserted, deleted, delete_list | changes/s |\n| netfilter.conntrack_expect | created, deleted, new | expectations/s |\n| netfilter.conntrack_search | searched, restarted, found | searches/s |\n| netfilter.conntrack_errors | icmp_error, error_failed, drop, early_drop | events/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/stat/nf_conntrack-Conntrack", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/stat/synproxy", "monitored_instance": {"name": "Synproxy", "link": "", "categories": ["data-collection.linux-systems.firewall-metrics"], "icon_filename": "firewall.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["synproxy"], "most_popular": false}, "overview": "# Synproxy\n\n## Overview\n\nThis integration provides statistics about the Synproxy netfilter module.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Synproxy instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| netfilter.synproxy_syn_received | received | packets/s |\n| netfilter.synproxy_conn_reopened | reopened | connections/s |\n| netfilter.synproxy_cookies | valid, invalid, retransmits | cookies/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/stat/synproxy-Synproxy", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/net/wireless", "monitored_instance": {"name": "Wireless network interfaces", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["wireless devices"], "most_popular": false}, "overview": "# Wireless network interfaces\n\n## Overview\n\nMonitor wireless devices with metrics about status, link quality, signal level, noise level and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per wireless device\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| wireless.status | status | status |\n| wireless.link_quality | link_quality | value |\n| wireless.signal_level | signal_level | dBm |\n| wireless.noise_level | noise_level | dBm |\n| wireless.discarded_packets | nwid, crypt, frag, retry, misc | packets/s |\n| wireless.missed_beacons | missed_beacons | frames/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/net/wireless-Wireless_network_interfaces", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/pagetypeinfo", "monitored_instance": {"name": "Page types", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["memory page types"], "most_popular": false}, "overview": "# Page types\n\n## Overview\n\nThis integration provides metrics about the system's memory page types\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Page types instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pagetype_global | a dimension per pagesize | B |\n\n### Per node, zone, type\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| node_id | TBD |\n| node_zone | TBD |\n| node_type | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.pagetype | a dimension per pagesize | B |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/pagetypeinfo-Page_types", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/pressure", "monitored_instance": {"name": "Pressure Stall Information", "link": "", "categories": ["data-collection.linux-systems.pressure-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["pressure"], "most_popular": false}, "overview": "# Pressure Stall Information\n\n## Overview\n\nIntroduced in Linux kernel 4.20, `/proc/pressure` provides information about system pressure stall information\n(PSI). PSI is a feature that allows the system to track the amount of time the system is stalled due to\nresource contention, such as CPU, memory, or I/O.\n\nThe collectors monitored 3 separate files for CPU, memory, and I/O:\n\n- **cpu**: Tracks the amount of time tasks are stalled due to CPU contention.\n- **memory**: Tracks the amount of time tasks are stalled due to memory contention.\n- **io**: Tracks the amount of time tasks are stalled due to I/O contention.\n- **irq**: Tracks the amount of time tasks are stalled due to IRQ contention.\n\nEach of them provides metrics for stall time over the last 10 seconds, 1 minute, 5 minutes, and 15 minutes.\n\nMonitoring the /proc/pressure files can provide important insights into system performance and capacity planning:\n\n- **Identifying resource contention**: If these metrics are consistently high, it indicates that tasks are\n frequently being stalled due to lack of resources, which can significantly degrade system performance.\n\n- **Troubleshooting performance issues**: If a system is experiencing performance issues, these metrics can\n help identify whether resource contention is the cause.\n\n- **Capacity planning**: By monitoring these metrics over time, you can understand trends in resource\n utilization and make informed decisions about when to add more resources to your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Pressure Stall Information instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu_some_pressure | some10, some60, some300 | percentage |\n| system.cpu_some_pressure_stall_time | time | ms |\n| system.cpu_full_pressure | some10, some60, some300 | percentage |\n| system.cpu_full_pressure_stall_time | time | ms |\n| system.memory_some_pressure | some10, some60, some300 | percentage |\n| system.memory_some_pressure_stall_time | time | ms |\n| system.memory_full_pressure | some10, some60, some300 | percentage |\n| system.memory_full_pressure_stall_time | time | ms |\n| system.io_some_pressure | some10, some60, some300 | percentage |\n| system.io_some_pressure_stall_time | time | ms |\n| system.io_full_pressure | some10, some60, some300 | percentage |\n| system.io_full_pressure_stall_time | time | ms |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/pressure-Pressure_Stall_Information", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/softirqs", "monitored_instance": {"name": "SoftIRQ statistics", "link": "", "categories": ["data-collection.linux-systems.cpu-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["softirqs", "interrupts"], "most_popular": false}, "overview": "# SoftIRQ statistics\n\n## Overview\n\nIn the Linux kernel, handling of hardware interrupts is split into two halves: the top half and the bottom half.\nThe top half is the routine that responds immediately to an interrupt, while the bottom half is deferred to be processed later.\n\nSoftirqs are a mechanism in the Linux kernel used to handle the bottom halves of interrupts, which can be\ndeferred and processed later in a context where it's safe to enable interrupts.\n\nThe actual work of handling the interrupt is offloaded to a softirq and executed later when the system\ndecides it's a good time to process them. This helps to keep the system responsive by not blocking the top\nhalf for too long, which could lead to missed interrupts.\n\nMonitoring `/proc/softirqs` is useful for:\n\n- **Performance tuning**: A high rate of softirqs could indicate a performance issue. For instance, a high\n rate of network softirqs (`NET_RX` and `NET_TX`) could indicate a network performance issue.\n\n- **Troubleshooting**: If a system is behaving unexpectedly, checking the softirqs could provide clues about\n what is going on. For example, a sudden increase in block device softirqs (BLOCK) might indicate a problem\n with a disk.\n\n- **Understanding system behavior**: Knowing what types of softirqs are happening can help you understand what\n your system is doing, particularly in terms of how it's interacting with hardware and how it's handling\n interrupts.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SoftIRQ statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.softirqs | a dimension per softirq | softirqs/s |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.softirqs | a dimension per softirq | softirqs/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/softirqs-SoftIRQ_statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/spl/kstat/zfs", "monitored_instance": {"name": "ZFS Pools", "link": "", "categories": ["data-collection.linux-systems.filesystem-metrics.zfs"], "icon_filename": "filesystem.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["zfs pools", "pools", "zfs", "filesystem"], "most_popular": false}, "overview": "# ZFS Pools\n\n## Overview\n\nThis integration provides metrics about the state of ZFS pools.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_pool_state_warn ](https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf) | zfspool.state | ZFS pool ${label:pool} state is degraded |\n| [ zfs_pool_state_crit ](https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf) | zfspool.state | ZFS pool ${label:pool} state is faulted or unavail |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zfs pool\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| pool | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfspool.state | online, degraded, faulted, offline, removed, unavail, suspended | boolean |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/spl/kstat/zfs-ZFS_Pools", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/spl/kstat/zfs/arcstats", "monitored_instance": {"name": "ZFS Adaptive Replacement Cache", "link": "", "categories": ["data-collection.linux-systems.filesystem-metrics.zfs"], "icon_filename": "filesystem.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["zfs arc", "arc", "zfs", "filesystem"], "most_popular": false}, "overview": "# ZFS Adaptive Replacement Cache\n\n## Overview\n\nThis integration monitors ZFS Adadptive Replacement Cache (ARC) statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ zfs_memory_throttle ](https://github.com/netdata/netdata/blob/master/health/health.d/zfs.conf) | zfs.memory_ops | number of times ZFS had to limit the ARC growth in the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ZFS Adaptive Replacement Cache instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zfs.arc_size | arcsz, target, min, max | MiB |\n| zfs.l2_size | actual, size | MiB |\n| zfs.reads | arc, demand, prefetch, metadata, l2 | reads/s |\n| zfs.bytes | read, write | KiB/s |\n| zfs.hits | hits, misses | percentage |\n| zfs.hits_rate | hits, misses | events/s |\n| zfs.dhits | hits, misses | percentage |\n| zfs.dhits_rate | hits, misses | events/s |\n| zfs.phits | hits, misses | percentage |\n| zfs.phits_rate | hits, misses | events/s |\n| zfs.mhits | hits, misses | percentage |\n| zfs.mhits_rate | hits, misses | events/s |\n| zfs.l2hits | hits, misses | percentage |\n| zfs.l2hits_rate | hits, misses | events/s |\n| zfs.list_hits | mfu, mfu_ghost, mru, mru_ghost | hits/s |\n| zfs.arc_size_breakdown | recent, frequent | percentage |\n| zfs.memory_ops | direct, throttled, indirect | operations/s |\n| zfs.important_ops | evict_skip, deleted, mutex_miss, hash_collisions | operations/s |\n| zfs.actual_hits | hits, misses | percentage |\n| zfs.actual_hits_rate | hits, misses | events/s |\n| zfs.demand_data_hits | hits, misses | percentage |\n| zfs.demand_data_hits_rate | hits, misses | events/s |\n| zfs.prefetch_data_hits | hits, misses | percentage |\n| zfs.prefetch_data_hits_rate | hits, misses | events/s |\n| zfs.hash_elements | current, max | elements |\n| zfs.hash_chains | current, max | chains |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/spl/kstat/zfs/arcstats-ZFS_Adaptive_Replacement_Cache", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/stat", "monitored_instance": {"name": "System statistics", "link": "", "categories": ["data-collection.linux-systems.system-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["cpu utilization", "process counts"], "most_popular": false}, "overview": "# System statistics\n\n## Overview\n\nCPU utilization, states and frequencies and key Linux system performance metrics.\n\nThe `/proc/stat` file provides various types of system statistics:\n\n- The overall system CPU usage statistics\n- Per CPU core statistics\n- The total context switching of the system\n- The total number of processes running\n- The total CPU interrupts\n- The total CPU softirqs\n\nThe collector also reads:\n\n- `/proc/schedstat` for statistics about the process scheduler in the Linux kernel.\n- `/sys/devices/system/cpu/[X]/thermal_throttle/core_throttle_count` to get the count of thermal throttling events for a specific CPU core on Linux systems.\n- `/sys/devices/system/cpu/[X]/thermal_throttle/package_throttle_count` to get the count of thermal throttling events for a specific CPU package on a Linux system.\n- `/sys/devices/system/cpu/[X]/cpufreq/scaling_cur_freq` to get the current operating frequency of a specific CPU core.\n- `/sys/devices/system/cpu/[X]/cpufreq/stats/time_in_state` to get the amount of time the CPU has spent in each of its available frequency states.\n- `/sys/devices/system/cpu/[X]/cpuidle/state[X]/name` to get the names of the idle states for each CPU core in a Linux system.\n- `/sys/devices/system/cpu/[X]/cpuidle/state[X]/time` to get the total time each specific CPU core has spent in each idle state since the system was started.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector auto-detects all metrics. No configuration is needed.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe collector disables cpu frequency and idle state monitoring when there are more than 128 CPU cores available.\n\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `plugin:proc:/proc/stat` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 10min_cpu_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU utilization over the last 10 minutes (excluding iowait, nice and steal) |\n| [ 10min_cpu_iowait ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU iowait time over the last 10 minutes |\n| [ 20min_steal_cpu ](https://github.com/netdata/netdata/blob/master/health/health.d/cpu.conf) | system.cpu | average CPU steal time over the last 20 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.cpu | guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle | percentage |\n| system.intr | interrupts | interrupts/s |\n| system.ctxt | switches | context switches/s |\n| system.forks | started | processes/s |\n| system.processes | running, blocked | processes |\n| cpu.core_throttling | a dimension per cpu core | events/s |\n| cpu.package_throttling | a dimension per package | events/s |\n| cpu.cpufreq | a dimension per cpu core | MHz |\n\n### Per cpu core\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| cpu | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| cpu.cpu | guest_nice, guest, steal, softirq, irq, user, system, nice, iowait, idle | percentage |\n| cpuidle.cpu_cstate_residency_time | a dimension per c-state | percentage |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/stat-System_statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/sys/kernel/random/entropy_avail", "monitored_instance": {"name": "Entropy", "link": "", "categories": ["data-collection.linux-systems.system-metrics"], "icon_filename": "syslog.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["entropy"], "most_popular": false}, "overview": "# Entropy\n\n## Overview\n\nEntropy, a measure of the randomness or unpredictability of data.\n\nIn the context of cryptography, entropy is used to generate random numbers or keys that are essential for\nsecure communication and encryption. Without a good source of entropy, cryptographic protocols can become\nvulnerable to attacks that exploit the predictability of the generated keys.\n\nIn most operating systems, entropy is generated by collecting random events from various sources, such as\nhardware interrupts, mouse movements, keyboard presses, and disk activity. These events are fed into a pool\nof entropy, which is then used to generate random numbers when needed.\n\nThe `/dev/random` device in Linux is one such source of entropy, and it provides an interface for programs\nto access the pool of entropy. When a program requests random numbers, it reads from the `/dev/random` device,\nwhich blocks until enough entropy is available to generate the requested numbers. This ensures that the\ngenerated numbers are truly random and not predictable. \n\nHowever, if the pool of entropy gets depleted, the `/dev/random` device may block indefinitely, causing\nprograms that rely on random numbers to slow down or even freeze. This is especially problematic for\ncryptographic protocols that require a continuous stream of random numbers, such as SSL/TLS and SSH.\n\nTo avoid this issue, some systems use a hardware random number generator (RNG) to generate high-quality\nentropy. A hardware RNG generates random numbers by measuring physical phenomena, such as thermal noise or\nradioactive decay. These sources of randomness are considered to be more reliable and unpredictable than\nsoftware-based sources.\n\nOne such hardware RNG is the Trusted Platform Module (TPM), which is a dedicated hardware chip that is used\nfor cryptographic operations and secure boot. The TPM contains a built-in hardware RNG that generates\nhigh-quality entropy, which can be used to seed the pool of entropy in the operating system.\n\nAlternatively, software-based solutions such as `Haveged` can be used to generate additional entropy by\nexploiting sources of randomness in the system, such as CPU utilization and network traffic. These solutions\ncan help to mitigate the risk of entropy depletion, but they may not be as reliable as hardware-based solutions.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ lowest_entropy ](https://github.com/netdata/netdata/blob/master/health/health.d/entropy.conf) | system.entropy | minimum number of bits of entropy available for the kernel\u2019s random number generator |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Entropy instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.entropy | entropy | entropy |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/sys/kernel/random/entropy_avail-Entropy", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/uptime", "monitored_instance": {"name": "System Uptime", "link": "", "categories": ["data-collection.linux-systems.system-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["uptime"], "most_popular": false}, "overview": "# System Uptime\n\n## Overview\n\nThe amount of time the system has been up (running).\n\nUptime is a critical aspect of overall system performance:\n\n- **Availability**: Uptime monitoring can show whether a server is consistently available or experiences frequent downtimes.\n- **Performance Monitoring**: While server uptime alone doesn't provide detailed performance data, analyzing the duration and frequency of downtimes can help identify patterns or trends.\n- **Proactive problem detection**: If server uptime monitoring reveals unexpected downtimes or a decreasing uptime trend, it can serve as an early warning sign of potential problems.\n- **Root cause analysis**: When investigating server downtime, the uptime metric alone may not provide enough information to pinpoint the exact cause.\n- **Load balancing**: Uptime data can indirectly indicate load balancing issues if certain servers have significantly lower uptimes than others.\n- **Optimize maintenance efforts**: Servers with consistently low uptimes or frequent downtimes may require more attention.\n- **Compliance requirements**: Server uptime data can be used to demonstrate compliance with regulatory requirements or SLAs that mandate a minimum level of server availability.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per System Uptime instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.uptime | uptime | seconds |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/uptime-System_Uptime", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/proc/vmstat", "monitored_instance": {"name": "Memory Statistics", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["swap", "page faults", "oom", "numa"], "most_popular": false}, "overview": "# Memory Statistics\n\n## Overview\n\nLinux Virtual memory subsystem.\n\nInformation about memory management, indicating how effectively the kernel allocates and frees\nmemory resources in response to system demands.\n\nMonitors page faults, which occur when a process requests a portion of its memory that isn't\nimmediately available. Monitoring these events can help diagnose inefficiencies in memory management and\nprovide insights into application behavior.\n\nTracks swapping activity \u2014 a vital aspect of memory management where the kernel moves data from RAM to\nswap space, and vice versa, based on memory demand and usage. It also monitors the utilization of zswap,\na compressed cache for swap pages, and provides insights into its usage and performance implications.\n\nIn the context of virtualized environments, it tracks the ballooning mechanism which is used to balance\nmemory resources between host and guest systems.\n\nFor systems using NUMA architecture, it provides insights into the local and remote memory accesses, which\ncan impact the performance based on the memory access times.\n\nThe collector also watches for 'Out of Memory' kills, a drastic measure taken by the system when it runs out\nof memory resources.\n\n\n\n\nThis collector is only supported on the following platforms:\n\n- linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ 30min_ram_swapped_out ](https://github.com/netdata/netdata/blob/master/health/health.d/swap.conf) | mem.swapio | percentage of the system RAM swapped in the last 30 minutes |\n| [ oom_kill ](https://github.com/netdata/netdata/blob/master/health/health.d/ram.conf) | mem.oom_kill | number of out of memory kills in the last 30 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memory Statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.swapio | in, out | KiB/s |\n| system.pgpgio | in, out | KiB/s |\n| system.pgfaults | minor, major | faults/s |\n| mem.balloon | inflate, deflate, migrate | KiB/s |\n| mem.zswapio | in, out | KiB/s |\n| mem.ksm_cow | swapin, write | KiB/s |\n| mem.thp_faults | alloc, fallback, fallback_charge | events/s |\n| mem.thp_file | alloc, fallback, mapped, fallback_charge | events/s |\n| mem.thp_zero | alloc, failed | events/s |\n| mem.thp_collapse | alloc, failed | events/s |\n| mem.thp_split | split, failed, split_pmd, split_deferred | events/s |\n| mem.thp_swapout | swapout, fallback | events/s |\n| mem.thp_compact | success, fail, stall | events/s |\n| mem.oom_kill | kills | kills/s |\n| mem.numa | local, foreign, interleave, other, pte_updates, huge_pte_updates, hint_faults, hint_faults_local, pages_migrated | events/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/proc/vmstat-Memory_Statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/block/zram", "monitored_instance": {"name": "ZRAM", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["zram"], "most_popular": false}, "overview": "# ZRAM\n\n## Overview\n\nzRAM, or compressed RAM, is a block device that uses a portion of your system's RAM as a block device.\nThe data written to this block device is compressed and stored in memory.\n\nThe collectors provides information about the operation and the effectiveness of zRAM on your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per zram device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.zram_usage | compressed, metadata | MiB |\n| mem.zram_savings | savings, original | MiB |\n| mem.zram_ratio | ratio | ratio |\n| mem.zram_efficiency | percent | percentage |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/block/zram-ZRAM", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/class/drm", "monitored_instance": {"name": "AMD GPU", "link": "https://www.amd.com", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "amd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["amd", "gpu", "hardware"], "most_popular": false}, "overview": "# AMD GPU\n\n## Overview\n\nThis integration monitors AMD GPU metrics, such as utilization, clock frequency and memory usage.\n\nIt reads `/sys/class/drm` to collect metrics for every AMD GPU card instance it encounters.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per gpu\n\nThese metrics refer to the GPU.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| product_name | GPU product name (e.g. AMD RX 6600) |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| amdgpu.gpu_utilization | utilization | percentage |\n| amdgpu.gpu_mem_utilization | utilization | percentage |\n| amdgpu.gpu_clk_frequency | frequency | MHz |\n| amdgpu.gpu_mem_clk_frequency | frequency | MHz |\n| amdgpu.gpu_mem_vram_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_vram_usage | free, used | bytes |\n| amdgpu.gpu_mem_vis_vram_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_vis_vram_usage | free, used | bytes |\n| amdgpu.gpu_mem_gtt_usage_perc | usage | percentage |\n| amdgpu.gpu_mem_gtt_usage | free, used | bytes |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/class/drm-AMD_GPU", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/class/infiniband", "monitored_instance": {"name": "InfiniBand", "link": "", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["infiniband", "rdma"], "most_popular": false}, "overview": "# InfiniBand\n\n## Overview\n\nThis integration monitors InfiniBand network inteface statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per infiniband port\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ib.bytes | Received, Sent | kilobits/s |\n| ib.packets | Received, Sent, Mcast_rcvd, Mcast_sent, Ucast_rcvd, Ucast_sent | packets/s |\n| ib.errors | Pkts_malformated, Pkts_rcvd_discarded, Pkts_sent_discarded, Tick_Wait_to_send, Pkts_missed_resource, Buffer_overrun, Link_Downed, Link_recovered, Link_integrity_err, Link_minor_errors, Pkts_rcvd_with_EBP, Pkts_rcvd_discarded_by_switch, Pkts_sent_discarded_by_switch | errors/s |\n| ib.hwerrors | Duplicated_packets, Pkt_Seq_Num_gap, Ack_timer_expired, Drop_missing_buffer, Drop_out_of_sequence, NAK_sequence_rcvd, CQE_err_Req, CQE_err_Resp, CQE_Flushed_err_Req, CQE_Flushed_err_Resp, Remote_access_err_Req, Remote_access_err_Resp, Remote_invalid_req, Local_length_err_Resp, RNR_NAK_Packets, CNP_Pkts_ignored, RoCE_ICRC_Errors | errors/s |\n| ib.hwpackets | RoCEv2_Congestion_sent, RoCEv2_Congestion_rcvd, IB_Congestion_handled, ATOMIC_req_rcvd, Connection_req_rcvd, Read_req_rcvd, Write_req_rcvd, RoCE_retrans_adaptive, RoCE_retrans_timeout, RoCE_slow_restart, RoCE_slow_restart_congestion, RoCE_slow_restart_count | packets/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/class/infiniband-InfiniBand", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/class/power_supply", "monitored_instance": {"name": "Power Supply", "link": "", "categories": ["data-collection.linux-systems.power-supply-metrics"], "icon_filename": "powersupply.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["psu", "power supply"], "most_popular": false}, "overview": "# Power Supply\n\n## Overview\n\nThis integration monitors Power supply metrics, such as battery status, AC power status and more.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ linux_power_supply_capacity ](https://github.com/netdata/netdata/blob/master/health/health.d/linux_power_supply.conf) | powersupply.capacity | percentage of remaining power supply capacity |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per power device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| powersupply.capacity | capacity | percentage |\n| powersupply.charge | empty_design, empty, now, full, full_design | Ah |\n| powersupply.energy | empty_design, empty, now, full, full_design | Wh |\n| powersupply.voltage | min_design, min, now, max, max_design | V |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/class/power_supply-Power_Supply", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/devices/system/edac/mc", "monitored_instance": {"name": "Memory modules (DIMMs)", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["edac", "ecc", "dimm", "ram", "hardware"], "most_popular": false}, "overview": "# Memory modules (DIMMs)\n\n## Overview\n\nThe Error Detection and Correction (EDAC) subsystem is detecting and reporting errors in the system's memory,\nprimarily ECC (Error-Correcting Code) memory errors.\n\nThe collector provides data for:\n\n- Per memory controller (MC): correctable and uncorrectable errors. These can be of 2 kinds:\n - errors related to a DIMM\n - errors that cannot be associated with a DIMM\n\n- Per memory DIMM: correctable and uncorrectable errors. There are 2 kinds:\n - memory controllers that can identify the physical DIMMS and report errors directly for them,\n - memory controllers that report errors for memory address ranges that can be linked to dimms.\n In this case the DIMMS reported may be more than the physical DIMMS installed.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ecc_memory_mc_noinfo_correctable ](https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf) | mem.edac_mc | memory controller ${label:controller} ECC correctable errors (unknown DIMM slot) in the last 10 minutes |\n| [ ecc_memory_mc_noinfo_uncorrectable ](https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf) | mem.edac_mc | memory controller ${label:controller} ECC uncorrectable errors (unknown DIMM slot) in the last 10 minutes |\n| [ ecc_memory_dimm_correctable ](https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf) | mem.edac_mc_dimm | DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC correctable errors in the last 10 minutes |\n| [ ecc_memory_dimm_uncorrectable ](https://github.com/netdata/netdata/blob/master/health/health.d/memory.conf) | mem.edac_mc_dimm | DIMM ${label:dimm} controller ${label:controller} (location ${label:dimm_location}) ECC uncorrectable errors in the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per memory controller\n\nThese metrics refer to the memory controller.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| controller | [mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller. |\n| mc_name | Memory controller type. |\n| size_mb | The amount of memory in megabytes that this memory controller manages. |\n| max_location | Last available memory slot in this memory controller. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.edac_mc | correctable, uncorrectable, correctable_noinfo, uncorrectable_noinfo | errors/s |\n\n### Per memory module\n\nThese metrics refer to the memory module (or rank, [depends on the memory controller](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#f5)).\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| controller | [mcX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#mcx-directories) directory name of this memory controller. |\n| dimm | [dimmX or rankX](https://www.kernel.org/doc/html/v5.0/admin-guide/ras.html#dimmx-or-rankx-directories) directory name of this memory module. |\n| dimm_dev_type | Type of DRAM device used in this memory module. For example, x1, x2, x4, x8. |\n| dimm_edac_mode | Used type of error detection and correction. For example, S4ECD4ED would mean a Chipkill with x4 DRAM. |\n| dimm_label | Label assigned to this memory module. |\n| dimm_location | Location of the memory module. |\n| dimm_mem_type | Type of the memory module. |\n| size | The amount of memory in megabytes that this memory module manages. |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.edac_mc | correctable, uncorrectable | errors/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/devices/system/edac/mc-Memory_modules_(DIMMs)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/devices/system/node", "monitored_instance": {"name": "Non-Uniform Memory Access", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["numa"], "most_popular": false}, "overview": "# Non-Uniform Memory Access\n\n## Overview\n\nInformation about NUMA (Non-Uniform Memory Access) nodes on the system.\n\nNUMA is a method of configuring a cluster of microprocessor in a multiprocessing system so that they can\nshare memory locally, improving performance and the ability of the system to be expanded. NUMA is used in a\nsymmetric multiprocessing (SMP) system.\n\nIn a NUMA system, processors, memory, and I/O devices are grouped together into cells, also known as nodes.\nEach node has its own memory and set of I/O devices, and one or more processors. While a processor can access\nmemory in any of the nodes, it does so faster when accessing memory within its own node.\n\nThe collector provides statistics on memory allocations for processes running on the NUMA nodes, revealing the\nefficiency of memory allocations in multi-node systems.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per numa node\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| numa_node | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.numa_nodes | hit, miss, local, foreign, interleave, other | events/s |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/devices/system/node-Non-Uniform_Memory_Access", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/fs/btrfs", "monitored_instance": {"name": "BTRFS", "link": "", "categories": ["data-collection.linux-systems.filesystem-metrics.btrfs"], "icon_filename": "filesystem.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["btrfs", "filesystem"], "most_popular": false}, "overview": "# BTRFS\n\n## Overview\n\nThis integration provides usage and error statistics from the BTRFS filesystem.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ btrfs_allocated ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.disk | percentage of allocated BTRFS physical disk space |\n| [ btrfs_data ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.data | utilization of BTRFS data space |\n| [ btrfs_metadata ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.metadata | utilization of BTRFS metadata space |\n| [ btrfs_system ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.system | utilization of BTRFS system space |\n| [ btrfs_device_read_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS read errors |\n| [ btrfs_device_write_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS write errors |\n| [ btrfs_device_flush_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS flush errors |\n| [ btrfs_device_corruption_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS corruption errors |\n| [ btrfs_device_generation_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/btrfs.conf) | btrfs.device_errors | number of encountered BTRFS generation errors |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per btrfs filesystem\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| filesystem_uuid | TBD |\n| filesystem_label | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| btrfs.disk | unallocated, data_free, data_used, meta_free, meta_used, sys_free, sys_used | MiB |\n| btrfs.data | free, used | MiB |\n| btrfs.metadata | free, used, reserved | MiB |\n| btrfs.system | free, used | MiB |\n| btrfs.commits | commits | commits |\n| btrfs.commits_perc_time | commits | percentage |\n| btrfs.commit_timings | last, max | ms |\n\n### Per btrfs device\n\n\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device_id | TBD |\n| filesystem_uuid | TBD |\n| filesystem_label | TBD |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| btrfs.device_errors | write_errs, read_errs, flush_errs, corruption_errs, generation_errs | errors |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/fs/btrfs-BTRFS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "/sys/kernel/mm/ksm", "monitored_instance": {"name": "Kernel Same-Page Merging", "link": "", "categories": ["data-collection.linux-systems.memory-metrics"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ksm", "samepage", "merging"], "most_popular": false}, "overview": "# Kernel Same-Page Merging\n\n## Overview\n\nKernel Samepage Merging (KSM) is a memory-saving feature in Linux that enables the kernel to examine the\nmemory of different processes and identify identical pages. It then merges these identical pages into a\nsingle page that the processes share. This is particularly useful for virtualization, where multiple virtual\nmachines might be running the same operating system or applications and have many identical pages.\n\nThe collector provides information about the operation and effectiveness of KSM on your system.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Kernel Same-Page Merging instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.ksm | shared, unshared, sharing, volatile | MiB |\n| mem.ksm_savings | savings, offered | MiB |\n| mem.ksm_ratios | savings | percentage |\n\n", "integration_type": "collector", "id": "proc.plugin-/sys/kernel/mm/ksm-Kernel_Same-Page_Merging", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "proc.plugin", "module_name": "ipc", "monitored_instance": {"name": "Inter Process Communication", "link": "", "categories": ["data-collection.linux-systems.ipc-metrics"], "icon_filename": "network-wired.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ipc", "semaphores", "shared memory"], "most_popular": false}, "overview": "# Inter Process Communication\n\n## Overview\n\nIPC stands for Inter-Process Communication. It is a mechanism which allows processes to communicate with each\nother and synchronize their actions.\n\nThis collector exposes information about:\n\n- Message Queues: This allows messages to be exchanged between processes. It's a more flexible method that\n allows messages to be placed onto a queue and read at a later time.\n\n- Shared Memory: This method allows for the fastest form of IPC because processes can exchange data by\n reading/writing into shared memory segments.\n\n- Semaphores: They are used to synchronize the operations performed by independent processes. So, if multiple\n processes are trying to access a single shared resource, semaphores can ensure that only one process\n accesses the resource at a given time.\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ semaphores_used ](https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf) | system.ipc_semaphores | IPC semaphore utilization |\n| [ semaphore_arrays_used ](https://github.com/netdata/netdata/blob/master/health/health.d/ipc.conf) | system.ipc_semaphore_arrays | IPC semaphore arrays utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Inter Process Communication instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.ipc_semaphores | semaphores | semaphores |\n| system.ipc_semaphore_arrays | arrays | arrays |\n| system.message_queue_message | a dimension per queue | messages |\n| system.message_queue_bytes | a dimension per queue | bytes |\n| system.shared_memory_segments | segments | segments |\n| system.shared_memory_bytes | bytes | bytes |\n\n", "integration_type": "collector", "id": "proc.plugin-ipc-Inter_Process_Communication", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/proc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "adaptec_raid", "monitored_instance": {"name": "AdaptecRAID", "link": "https://www.microchip.com/en-us/products/storage", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "adaptec.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["storage", "raid-controller", "manage-disks"], "most_popular": false}, "overview": "# AdaptecRAID\n\n## Overview\n\nThis collector monitors Adaptec RAID hardware storage controller metrics about both physical and logical drives.\n\n\nIt uses the arcconf command line utility (from adaptec) to monitor your raid controller.\n\nExecuted commands:\n - sudo -n arcconf GETCONFIG 1 LD\n - sudo -n arcconf GETCONFIG 1 PD\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThe module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password.\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, netdata should be to execute commands via the arcconf command line utility\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Grant permissions for netdata, to run arcconf as sudoer\n\nThe module uses arcconf, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute arcconf as root without a password.\n\nAdd to your /etc/sudoers file:\nwhich arcconf shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/arcconf\n```\n\n\n#### Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.\n\nAs root user, do the following:\n\n```bash\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/adaptec_raid.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/adaptec_raid.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration per job\n\n```yaml\njob_name:\n name: my_job_name \n update_every: 1 # the JOB's data collection frequency\n priority: 60000 # the JOB's order on the dashboard\n penalty: yes # the JOB's penalty\n autodetection_retry: 0 # the JOB's re-check interval in seconds\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `adaptec_raid` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin adaptec_raid debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ adaptec_raid_ld_status ](https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf) | adaptec_raid.ld_status | logical device status is failed or degraded |\n| [ adaptec_raid_pd_state ](https://github.com/netdata/netdata/blob/master/health/health.d/adaptec_raid.conf) | adaptec_raid.pd_state | physical device state is not online |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per AdaptecRAID instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| adaptec_raid.ld_status | a dimension per logical device | bool |\n| adaptec_raid.pd_state | a dimension per physical device | bool |\n| adaptec_raid.smart_warnings | a dimension per physical device | count |\n| adaptec_raid.temperature | a dimension per physical device | celsius |\n\n", "integration_type": "collector", "id": "python.d.plugin-adaptec_raid-AdaptecRAID", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/adaptec_raid/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "alarms", "monitored_instance": {"name": "Netdata Agent alarms", "link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alarms/README.md", "categories": ["data-collection.other"], "icon_filename": ""}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["alarms", "netdata"], "most_popular": false}, "overview": "# Netdata Agent alarms\n\n## Overview\n\nThis collector creates an 'Alarms' menu with one line plot of `alarms.status`.\n\n\nAlarm status is read from the Netdata agent rest api [`/api/v1/alarms?all`](https://learn.netdata.cloud/api#/alerts/alerts1).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIt discovers instances of Netdata running on localhost, and gathers metrics from `http://127.0.0.1:19999/api/v1/alarms?all`. `CLEAR` status is mapped to `0`, `WARNING` to `1` and `CRITICAL` to `2`. Also, by default all alarms produced will be monitored.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/alarms.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/alarms.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| url | Netdata agent alarms endpoint to collect from. Can be local or remote so long as reachable by agent. | | True |\n| status_map | Mapping of alarm status to integer number that will be the metric value collected. | | True |\n| collect_alarm_values | set to true to include a chart with calculated alarm values over time. | | True |\n| alarm_status_chart_type | define the type of chart for plotting status over time e.g. 'line' or 'stacked'. | | True |\n| alarm_contains_words | A \",\" separated list of words you want to filter alarm names for. For example 'cpu,load' would filter for only alarms with \"cpu\" or \"load\" in alarm name. Default includes all.\n | | True |\n| alarm_excludes_words | A \",\" separated list of words you want to exclude based on alarm name. For example 'cpu,load' would exclude all alarms with \"cpu\" or \"load\" in alarm name. Default excludes None.\n | | True |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\njobs:\n url: 'http://127.0.0.1:19999/api/v1/alarms?all'\n\n```\n##### Advanced\n\nAn advanced example configuration with multiple jobs collecting different subsets of alarms for plotting on different charts.\n\"ML\" job will collect status and values for all alarms with \"ml_\" in the name. Default job will collect status for all other alarms.\n\n\n{% details summary=\"Config\" %}\n```yaml\nML:\n update_every: 5\n url: 'http://127.0.0.1:19999/api/v1/alarms?all'\n status_map:\n CLEAR: 0\n WARNING: 1\n CRITICAL: 2\n collect_alarm_values: true\n alarm_status_chart_type: 'stacked'\n alarm_contains_words: 'ml_'\n\nDefault:\n update_every: 5\n url: 'http://127.0.0.1:19999/api/v1/alarms?all'\n status_map:\n CLEAR: 0\n WARNING: 1\n CRITICAL: 2\n collect_alarm_values: false\n alarm_status_chart_type: 'stacked'\n alarm_excludes_words: 'ml_'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `alarms` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin alarms debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Netdata Agent alarms instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| alarms.status | a dimension per alarm representing the latest status of the alarm. | status |\n| alarms.values | a dimension per alarm representing the latest collected value of the alarm. | value |\n\n", "integration_type": "collector", "id": "python.d.plugin-alarms-Netdata_Agent_alarms", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/alarms/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "am2320", "monitored_instance": {"name": "AM2320", "link": "https://learn.adafruit.com/adafruit-am2320-temperature-humidity-i2c-sensor/overview", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["temperature", "am2320", "sensor", "humidity"], "most_popular": false}, "overview": "# AM2320\n\n## Overview\n\nThis collector monitors AM2320 sensor metrics about temperature and humidity.\n\nIt retrieves temperature and humidity values by contacting an AM2320 sensor over i2c.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming prerequisites are met, the collector will try to connect to the sensor via i2c\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Sensor connection to a Raspberry Pi\n\nConnect the am2320 to the Raspberry Pi I2C pins\n\nRaspberry Pi 3B/4 Pins:\n\n- Board 3.3V (pin 1) to sensor VIN (pin 1)\n- Board SDA (pin 3) to sensor SDA (pin 2)\n- Board GND (pin 6) to sensor GND (pin 3)\n- Board SCL (pin 5) to sensor SCL (pin 4)\n\nYou may also need to add two I2C pullup resistors if your board does not already have them. The Raspberry Pi does have internal pullup resistors but it doesn't hurt to add them anyway. You can use 2.2K - 10K but we will just use 10K. The resistors go from VDD to SCL and SDA each.\n\n\n#### Software requirements\n\nInstall the Adafruit Circuit Python AM2320 library:\n\n`sudo pip3 install adafruit-circuitpython-am2320`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/am2320.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/am2320.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Local sensor\n\nA basic JOB configuration\n\n```yaml\nlocal_sensor:\n name: 'Local AM2320'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `am2320` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin am2320 debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per AM2320 instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| am2320.temperature | temperature | celsius |\n| am2320.humidity | humidity | percentage |\n\n", "integration_type": "collector", "id": "python.d.plugin-am2320-AM2320", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/am2320/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "beanstalk", "monitored_instance": {"name": "Beanstalk", "link": "https://beanstalkd.github.io/", "categories": ["data-collection.task-queues", "data-collection.message-brokers"], "icon_filename": "beanstalk.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["beanstalk", "beanstalkd", "message"], "most_popular": false}, "overview": "# Beanstalk\n\n## Overview\n\nMonitor Beanstalk metrics to enhance job queueing and processing efficiency. Track job rates, processing times, and queue lengths for better task management.\n\nThe collector uses the `beanstalkc` python module to connect to a `beanstalkd` service and gather metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, module will attempt to connect to beanstalkd on 127.0.0.1:11300 address.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### beanstalkc python module\n\nThe collector requires the `beanstalkc` python module to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/beanstalk.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/beanstalk.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| host | IP or URL to a beanstalk service. | | False |\n| port | Port to the IP or URL to a beanstalk service. | | False |\n\n{% /details %}\n#### Examples\n\n##### Remote beanstalk server\n\nA basic remote beanstalk server\n\n```yaml\nremote:\n name: 'beanstalk'\n host: '1.2.3.4'\n port: 11300\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local_beanstalk'\n host: '127.0.0.1'\n port: 11300\n\nremote_job:\n name: 'remote_beanstalk'\n host: '192.0.2.1'\n port: 113000\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `beanstalk` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin beanstalk debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ beanstalk_server_buried_jobs ](https://github.com/netdata/netdata/blob/master/health/health.d/beanstalkd.conf) | beanstalk.current_jobs | number of buried jobs across all tubes. You need to manually kick them so they can be processed. Presence of buried jobs in a tube does not affect new jobs. |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Beanstalk instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| beanstalk.cpu_usage | user, system | cpu time |\n| beanstalk.jobs_rate | total, timeouts | jobs/s |\n| beanstalk.connections_rate | connections | connections/s |\n| beanstalk.commands_rate | put, peek, peek-ready, peek-delayed, peek-buried, reserve, use, watch, ignore, delete, bury, kick, stats, stats-job, stats-tube, list-tubes, list-tube-used, list-tubes-watched, pause-tube | commands/s |\n| beanstalk.connections_rate | tubes | tubes |\n| beanstalk.current_jobs | urgent, ready, reserved, delayed, buried | jobs |\n| beanstalk.current_connections | written, producers, workers, waiting | connections |\n| beanstalk.binlog | written, migrated | records/s |\n| beanstalk.uptime | uptime | seconds |\n\n### Per tube\n\nMetrics related to Beanstalk tubes. Each tube produces its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| beanstalk.jobs_rate | jobs | jobs/s |\n| beanstalk.jobs | urgent, ready, reserved, delayed, buried | jobs |\n| beanstalk.connections | using, waiting, watching | connections |\n| beanstalk.commands | deletes, pauses | commands/s |\n| beanstalk.pause | since, left | seconds |\n\n", "integration_type": "collector", "id": "python.d.plugin-beanstalk-Beanstalk", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/beanstalk/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "bind_rndc", "monitored_instance": {"name": "ISCBind (RNDC)", "link": "https://www.isc.org/bind/", "categories": ["data-collection.dns-and-dhcp-servers"], "icon_filename": "isc.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["dns", "bind", "server"], "most_popular": false}, "overview": "# ISCBind (RNDC)\n\n## Overview\n\nMonitor ISCBind (RNDC) performance for optimal DNS server operations. Monitor query rates, response times, and error rates to ensure reliable DNS service delivery.\n\nThis collector uses the `rndc` tool to dump (named.stats) statistics then read them to gather Bind Name Server summary performance metrics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, the collector will attempt to read named.stats file at `/var/log/bind/named.stats`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Minimum bind version and permissions\n\nVersion of bind must be >=9.6 and the Netdata user must have permissions to run `rndc stats`\n\n#### Setup log rotate for bind stats\n\nBIND appends logs at EVERY RUN. It is NOT RECOMMENDED to set `update_every` below 30 sec.\nIt is STRONGLY RECOMMENDED to create a `bind-rndc.conf` file for logrotate.\n\nTo set up BIND to dump stats do the following:\n\n1. Add to 'named.conf.options' options {}:\n`statistics-file \"/var/log/bind/named.stats\";`\n\n2. Create bind/ directory in /var/log:\n`cd /var/log/ && mkdir bind`\n\n3. Change owner of directory to 'bind' user:\n`chown bind bind/`\n\n4. RELOAD (NOT restart) BIND:\n`systemctl reload bind9.service`\n\n5. Run as a root 'rndc stats' to dump (BIND will create named.stats in new directory)\n\nTo allow Netdata to run 'rndc stats' change '/etc/bind/rndc.key' group to netdata:\n`chown :netdata rndc.key`\n\nLast, BUT NOT least, is to create bind-rndc.conf in logrotate.d/:\n```\n/var/log/bind/named.stats {\n\n daily\n rotate 4\n compress\n delaycompress\n create 0644 bind bind\n missingok\n postrotate\n rndc reload > /dev/null\n endscript\n}\n```\nTo test your logrotate conf file run as root:\n`logrotate /etc/logrotate.d/bind-rndc -d (debug dry-run mode)`\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/bind_rndc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/bind_rndc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| named_stats_path | Path to the named stats, after being dumped by `nrdc` | | False |\n\n{% /details %}\n#### Examples\n\n##### Local bind stats\n\nDefine a local path to bind stats file\n\n```yaml\nlocal:\n named_stats_path: '/var/log/bind/named.stats'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `bind_rndc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin bind_rndc debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ bind_rndc_stats_file_size ](https://github.com/netdata/netdata/blob/master/health/health.d/bind_rndc.conf) | bind_rndc.stats_size | BIND statistics-file size |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per ISCBind (RNDC) instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| bind_rndc.name_server_statistics | requests, rejected_queries, success, failure, responses, duplicate, recursion, nxrrset, nxdomain, non_auth_answer, auth_answer, dropped_queries | stats |\n| bind_rndc.incoming_queries | a dimension per incoming query type | queries |\n| bind_rndc.outgoing_queries | a dimension per outgoing query type | queries |\n| bind_rndc.stats_size | stats_size | MiB |\n\n", "integration_type": "collector", "id": "python.d.plugin-bind_rndc-ISCBind_(RNDC)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/bind_rndc/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "boinc", "monitored_instance": {"name": "BOINC", "link": "https://boinc.berkeley.edu/", "categories": ["data-collection.distributed-computing-systems"], "icon_filename": "bolt.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["boinc", "distributed"], "most_popular": false}, "overview": "# BOINC\n\n## Overview\n\nThis collector monitors task counts for the Berkeley Open Infrastructure Networking Computing (BOINC) distributed computing client.\n\nIt uses the same RPC interface that the BOINC monitoring GUI does.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, the module will try to auto-detect the password to the RPC interface by looking in `/var/lib/boinc` for this file (this is the location most Linux distributions use for a system-wide BOINC installation), so things may just work without needing configuration for a local system.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Boinc RPC interface\n\nBOINC requires use of a password to access it's RPC interface. You can find this password in the `gui_rpc_auth.cfg` file in your BOINC directory.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/boinc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/boinc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| hostname | Define a hostname where boinc is running. | | False |\n| port | The port of boinc RPC interface. | | False |\n| password | Provide a password to connect to a boinc RPC interface. | | False |\n\n{% /details %}\n#### Examples\n\n##### Configuration of a remote boinc instance\n\nA basic JOB configuration for a remote boinc instance\n\n```yaml\nremote:\n hostname: '1.2.3.4'\n port: 1234\n password: 'some-password'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 1234\n password: 'some-password'\n\nremote_job:\n name: 'remote'\n host: '192.0.2.1'\n port: 1234\n password: some-other-password\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `boinc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin boinc debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ boinc_total_tasks ](https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf) | boinc.tasks | average number of total tasks over the last 10 minutes |\n| [ boinc_active_tasks ](https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf) | boinc.tasks | average number of active tasks over the last 10 minutes |\n| [ boinc_compute_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf) | boinc.states | average number of compute errors over the last 10 minutes |\n| [ boinc_upload_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/boinc.conf) | boinc.states | average number of failed uploads over the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per BOINC instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| boinc.tasks | Total, Active | tasks |\n| boinc.states | New, Downloading, Ready to Run, Compute Errors, Uploading, Uploaded, Aborted, Failed Uploads | tasks |\n| boinc.sched | Uninitialized, Preempted, Scheduled | tasks |\n| boinc.process | Uninitialized, Executing, Suspended, Aborted, Quit, Copy Pending | tasks |\n\n", "integration_type": "collector", "id": "python.d.plugin-boinc-BOINC", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/boinc/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "ceph", "monitored_instance": {"name": "Ceph", "link": "https://ceph.io/", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "ceph.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["ceph", "storage"], "most_popular": false}, "overview": "# Ceph\n\n## Overview\n\nThis collector monitors Ceph metrics about Cluster statistics, OSD usage, latency and Pool statistics.\n\nUses the `rados` python module to connect to a Ceph cluster.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### `rados` python module\n\nMake sure the `rados` python module is installed\n\n#### Granting read permissions to ceph group from keyring file\n\nExecute: `chmod 640 /etc/ceph/ceph.client.admin.keyring`\n\n#### Create a specific rados_id\n\nYou can optionally create a rados_id to use instead of admin\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/ceph.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/ceph.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| config_file | Ceph config file | | True |\n| keyring_file | Ceph keyring file. netdata user must be added into ceph group and keyring file must be read group permission. | | True |\n| rados_id | A rados user id to use for connecting to the Ceph cluster. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic local Ceph cluster\n\nA basic configuration to connect to a local Ceph cluster.\n\n```yaml\nlocal:\n config_file: '/etc/ceph/ceph.conf'\n keyring_file: '/etc/ceph/ceph.client.admin.keyring'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ceph` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin ceph debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ceph_cluster_space_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/ceph.conf) | ceph.general_usage | cluster disk space utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Ceph instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ceph.general_usage | avail, used | KiB |\n| ceph.general_objects | cluster | objects |\n| ceph.general_bytes | read, write | KiB/s |\n| ceph.general_operations | read, write | operations |\n| ceph.general_latency | apply, commit | milliseconds |\n| ceph.pool_usage | a dimension per Ceph Pool | KiB |\n| ceph.pool_objects | a dimension per Ceph Pool | objects |\n| ceph.pool_read_bytes | a dimension per Ceph Pool | KiB/s |\n| ceph.pool_write_bytes | a dimension per Ceph Pool | KiB/s |\n| ceph.pool_read_operations | a dimension per Ceph Pool | operations |\n| ceph.pool_write_operations | a dimension per Ceph Pool | operations |\n| ceph.osd_usage | a dimension per Ceph OSD | KiB |\n| ceph.osd_size | a dimension per Ceph OSD | KiB |\n| ceph.apply_latency | a dimension per Ceph OSD | milliseconds |\n| ceph.commit_latency | a dimension per Ceph OSD | milliseconds |\n\n", "integration_type": "collector", "id": "python.d.plugin-ceph-Ceph", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/ceph/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "changefinder", "monitored_instance": {"name": "python.d changefinder", "link": "", "categories": ["data-collection.other"], "icon_filename": ""}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# python.d changefinder\n\n## Overview\n\n\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\n\n\nThere are no configuration options.\n\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `changefinder` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin changefinder debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per python.d changefinder instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| changefinder.scores | a dimension per chart | score |\n| changefinder.flags | a dimension per chart | flag |\n\n", "integration_type": "collector", "id": "python.d.plugin-changefinder-python.d_changefinder", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/changefinder/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "dovecot", "monitored_instance": {"name": "Dovecot", "link": "https://www.dovecot.org/", "categories": ["data-collection.mail-servers"], "icon_filename": "dovecot.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["dovecot", "imap", "mail"], "most_popular": false}, "overview": "# Dovecot\n\n## Overview\n\nThis collector monitors Dovecot metrics about sessions, logins, commands, page faults and more.\n\nIt uses the dovecot socket and executes the `EXPORT global` command to get the statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, the collector will attempt to connect to dovecot using unix socket localized in `/var/run/dovecot/stats`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Dovecot configuration\n\nThe Dovecot UNIX socket should have R/W permissions for user netdata, or Dovecot should be configured with a TCP/IP socket.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/dovecot.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/dovecot.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| socket | Use this socket to communicate with Devcot | | False |\n| host | Instead of using a socket, you can point the collector to an ip for devcot statistics. | | False |\n| port | Used in combination with host, configures the port devcot listens to. | | False |\n\n{% /details %}\n#### Examples\n\n##### Local TCP\n\nA basic TCP configuration.\n\n{% details summary=\"Config\" %}\n```yaml\nlocaltcpip:\n name: 'local'\n host: '127.0.0.1'\n port: 24242\n\n```\n{% /details %}\n##### Local socket\n\nA basic local socket configuration\n\n{% details summary=\"Config\" %}\n```yaml\nlocalsocket:\n name: 'local'\n socket: '/var/run/dovecot/stats'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `dovecot` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin dovecot debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Dovecot instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| dovecot.sessions | active sessions | number |\n| dovecot.logins | logins | number |\n| dovecot.commands | commands | commands |\n| dovecot.faults | minor, major | faults |\n| dovecot.context_switches | voluntary, involuntary | switches |\n| dovecot.io | read, write | KiB/s |\n| dovecot.net | read, write | kilobits/s |\n| dovecot.syscalls | read, write | syscalls/s |\n| dovecot.lookup | path, attr | number/s |\n| dovecot.cache | hits | hits/s |\n| dovecot.auth | ok, failed | attempts |\n| dovecot.auth_cache | hit, miss | number |\n\n", "integration_type": "collector", "id": "python.d.plugin-dovecot-Dovecot", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/dovecot/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "example", "monitored_instance": {"name": "Example collector", "link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/example/README.md", "categories": ["data-collection.other"], "icon_filename": ""}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["example", "netdata", "python"], "most_popular": false}, "overview": "# Example collector\n\n## Overview\n\nExample collector that generates some random numbers as metrics.\n\nIf you want to write your own collector, read our [writing a new Python module](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#how-to-write-a-new-module) tutorial.\n\n\nThe `get_data()` function uses `random.randint()` to generate a random number which will be collected as a metric.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/example.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/example.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| num_lines | The number of lines to create. | | False |\n| lower | The lower bound of numbers to randomly sample from. | | False |\n| upper | The upper bound of numbers to randomly sample from. | | False |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nfour_lines:\n name: \"Four Lines\"\n update_every: 1\n priority: 60000\n penalty: yes\n autodetection_retry: 0\n num_lines: 4\n lower: 0\n upper: 100\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `example` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin example debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Example collector instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| example.random | random | number |\n\n", "integration_type": "collector", "id": "python.d.plugin-example-Example_collector", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/example/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "exim", "monitored_instance": {"name": "Exim", "link": "https://www.exim.org/", "categories": ["data-collection.mail-servers"], "icon_filename": "exim.jpg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["exim", "mail", "server"], "most_popular": false}, "overview": "# Exim\n\n## Overview\n\nThis collector monitors Exim mail queue.\n\nIt uses the `exim` command line binary to get the statistics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAssuming setup prerequisites are met, the collector will try to gather statistics using the method described above, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Exim configuration - local installation\n\nThe module uses the `exim` binary, which can only be executed as root by default. We need to allow other users to `exim` binary. We solve that adding `queue_list_requires_admin` statement in exim configuration and set to `false`, because it is `true` by default. On many Linux distributions, the default location of `exim` configuration is in `/etc/exim.conf`.\n\n1. Edit the `exim` configuration with your preferred editor and add:\n`queue_list_requires_admin = false`\n2. Restart `exim` and Netdata\n\n\n#### Exim configuration - WHM (CPanel) server\n\nOn a WHM server, you can reconfigure `exim` over the WHM interface with the following steps.\n\n1. Login to WHM\n2. Navigate to Service Configuration --> Exim Configuration Manager --> tab Advanced Editor\n3. Scroll down to the button **Add additional configuration setting** and click on it.\n4. In the new dropdown which will appear above we need to find and choose:\n`queue_list_requires_admin` and set to `false`\n5. Scroll to the end and click the **Save** button.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/exim.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/exim.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| command | Path and command to the `exim` binary | | False |\n\n{% /details %}\n#### Examples\n\n##### Local exim install\n\nA basic local exim install\n\n```yaml\nlocal:\n command: 'exim -bpc'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `exim` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin exim debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Exim instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| exim.qemails | emails | emails |\n\n", "integration_type": "collector", "id": "python.d.plugin-exim-Exim", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/exim/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "fail2ban", "monitored_instance": {"name": "Fail2ban", "link": "https://www.fail2ban.org/", "categories": ["data-collection.authentication-and-authorization"], "icon_filename": "fail2ban.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["fail2ban", "security", "authentication", "authorization"], "most_popular": false}, "overview": "# Fail2ban\n\n## Overview\n\nMonitor Fail2ban performance for prime intrusion prevention operations. Monitor ban counts, jail statuses, and failed login attempts to ensure robust network security.\n\n\nIt collects metrics through reading the default log and configuration files of fail2ban.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe `fail2ban.log` file must be readable by the user `netdata`.\n - change the file ownership and access permissions.\n - update `/etc/logrotate.d/fail2ban`` to persist the changes after rotating the log file.\n\nTo change the file ownership and access permissions, execute the following:\n\n```shell\nsudo chown root:netdata /var/log/fail2ban.log\nsudo chmod 640 /var/log/fail2ban.log\n```\n\nTo persist the changes after rotating the log file, add `create 640 root netdata` to the `/etc/logrotate.d/fail2ban`:\n\n```shell\n/var/log/fail2ban.log {\n\n weekly\n rotate 4\n compress\n\n delaycompress\n missingok\n postrotate\n fail2ban-client flushlogs 1>/dev/null\n endscript\n\n # If fail2ban runs as non-root it still needs to have write access\n # to logfiles.\n # create 640 fail2ban adm\n create 640 root netdata\n}\n```\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default the collector will attempt to read log file at /var/log/fail2ban.log and conf file at /etc/fail2ban/jail.local. If conf file is not found default jail is ssh.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| log_path | path to fail2ban.log. | | False |\n| conf_path | path to jail.local/jail.conf. | | False |\n| conf_dir | path to jail.d/. | | False |\n| exclude | jails you want to exclude from autodetection. | | False |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nlocal:\n log_path: '/var/log/fail2ban.log'\n conf_path: '/etc/fail2ban/jail.local'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `fail2ban` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin fail2ban debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Fail2ban instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| fail2ban.failed_attempts | a dimension per jail | attempts/s |\n| fail2ban.bans | a dimension per jail | bans/s |\n| fail2ban.banned_ips | a dimension per jail | ips |\n\n", "integration_type": "collector", "id": "python.d.plugin-fail2ban-Fail2ban", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/fail2ban/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "gearman", "monitored_instance": {"name": "Gearman", "link": "http://gearman.org/", "categories": ["data-collection.distributed-computing-systems"], "icon_filename": "gearman.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["gearman", "gearman job server"], "most_popular": false}, "overview": "# Gearman\n\n## Overview\n\nMonitor Gearman metrics for proficient system task distribution. Track job counts, worker statuses, and queue lengths for effective distributed task management.\n\nThis collector connects to a Gearman instance via either TCP or unix socket.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen no configuration file is found, the collector tries to connect to TCP/IP socket: localhost:4730.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Socket permissions\n\nThe gearman UNIX socket should have read permission for user netdata.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/gearman.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/gearman.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| host | URL or IP where gearman is running. | | False |\n| port | Port of URL or IP where gearman is running. | | False |\n| tls | Use tls to connect to gearman. | | False |\n| cert | Provide a certificate file if needed to connect to a TLS gearman instance. | | False |\n| key | Provide a key file if needed to connect to a TLS gearman instance. | | False |\n\n{% /details %}\n#### Examples\n\n##### Local gearman service\n\nA basic host and port gearman configuration for localhost.\n\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 4730\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 4730\n\nremote:\n name: 'remote'\n host: '192.0.2.1'\n port: 4730\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `gearman` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin gearman debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ gearman_workers_queued ](https://github.com/netdata/netdata/blob/master/health/health.d/gearman.conf) | gearman.single_job | average number of queued jobs over the last 10 minutes |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Gearman instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| gearman.total_jobs | Pending, Running | Jobs |\n\n### Per gearman job\n\nMetrics related to Gearman jobs. Each job produces its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| gearman.single_job | Pending, Idle, Runnning | Jobs |\n\n", "integration_type": "collector", "id": "python.d.plugin-gearman-Gearman", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/gearman/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "go_expvar", "monitored_instance": {"name": "Go applications", "link": "https://pkg.go.dev/expvar", "categories": ["data-collection.apm"], "icon_filename": "go.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["go", "expvar", "application"], "most_popular": false}, "overview": "# Go applications\n\n## Overview\n\nThis collector monitors Go applications that expose their metrics with the use of the `expvar` package from the Go standard library. It produces charts for Go runtime memory statistics and optionally any number of custom charts.\n\nIt connects via http to gather the metrics exposed via the `expvar` package.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Sample `expvar` usage in a Go application\n\nThe `expvar` package exposes metrics over HTTP and is very easy to use.\nConsider this minimal sample below:\n\n```go\npackage main\n\nimport (\n _ \"expvar\"\n \"net/http\"\n)\n\nfunc main() {\n http.ListenAndServe(\"127.0.0.1:8080\", nil)\n}\n```\n\nWhen imported this way, the `expvar` package registers a HTTP handler at `/debug/vars` that\nexposes Go runtime's memory statistics in JSON format. You can inspect the output by opening\nthe URL in your browser (or by using `wget` or `curl`).\n\nSample output:\n\n```json\n{\n\"cmdline\": [\"./expvar-demo-binary\"],\n\"memstats\": {\"Alloc\":630856,\"TotalAlloc\":630856,\"Sys\":3346432,\"Lookups\":27, }\n}\n```\n\nYou can of course expose and monitor your own variables as well.\nHere is a sample Go application that exposes a few custom variables:\n\n```go\npackage main\n\nimport (\n \"expvar\"\n \"net/http\"\n \"runtime\"\n \"time\"\n)\n\nfunc main() {\n\n tick := time.NewTicker(1 * time.Second)\n num_go := expvar.NewInt(\"runtime.goroutines\")\n counters := expvar.NewMap(\"counters\")\n counters.Set(\"cnt1\", new(expvar.Int))\n counters.Set(\"cnt2\", new(expvar.Float))\n\n go http.ListenAndServe(\":8080\", nil)\n\n for {\n select {\n case <- tick.C:\n num_go.Set(int64(runtime.NumGoroutine()))\n counters.Add(\"cnt1\", 1)\n counters.AddFloat(\"cnt2\", 1.452)\n }\n }\n}\n```\n\nApart from the runtime memory stats, this application publishes two counters and the\nnumber of currently running Goroutines and updates these stats every second.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/go_expvar.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/go_expvar.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified. Each JOB can be used to monitor a different Go application.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| url | the URL and port of the expvar endpoint. Please include the whole path of the endpoint, as the expvar handler can be installed in a non-standard location. | | True |\n| user | If the URL is password protected, this is the username to use. | | False |\n| pass | If the URL is password protected, this is the password to use. | | False |\n| collect_memstats | Enables charts for Go runtime's memory statistics. | | False |\n| extra_charts | Defines extra data/charts to monitor, please see the example below. | | False |\n\n{% /details %}\n#### Examples\n\n##### Monitor a Go app1 application\n\nThe example below sets a configuration for a Go application, called `app1`. Besides the `memstats`, the application also exposes two counters and the number of currently running Goroutines and updates these stats every second.\n\nThe `go_expvar` collector can monitor these as well with the use of the `extra_charts` configuration variable.\n\nThe `extra_charts` variable is a YaML list of Netdata chart definitions.\nEach chart definition has the following keys:\n\n```\nid: Netdata chart ID\noptions: a key-value mapping of chart options\nlines: a list of line definitions\n```\n\n**Note: please do not use dots in the chart or line ID field.\nSee [this issue](https://github.com/netdata/netdata/pull/1902#issuecomment-284494195) for explanation.**\n\nPlease see these two links to the official Netdata documentation for more information about the values:\n\n- [External plugins - charts](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#chart)\n- [Chart variables](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/README.md#global-variables-order-and-chart)\n\n**Line definitions**\n\nEach chart can define multiple lines (dimensions).\nA line definition is a key-value mapping of line options.\nEach line can have the following options:\n\n```\n# mandatory\nexpvar_key: the name of the expvar as present in the JSON output of /debug/vars endpoint\nexpvar_type: value type; supported are \"float\" or \"int\"\nid: the id of this line/dimension in Netdata\n\n# optional - Netdata defaults are used if these options are not defined\nname: ''\nalgorithm: absolute\nmultiplier: 1\ndivisor: 100 if expvar_type == float, 1 if expvar_type == int\nhidden: False\n```\n\nPlease see the following link for more information about the options and their default values:\n[External plugins - dimensions](https://github.com/netdata/netdata/blob/master/collectors/plugins.d/README.md#dimension)\n\nApart from top-level expvars, this plugin can also parse expvars stored in a multi-level map;\nAll dicts in the resulting JSON document are then flattened to one level.\nExpvar names are joined together with '.' when flattening.\n\nExample:\n\n```\n{\n \"counters\": {\"cnt1\": 1042, \"cnt2\": 1512.9839999999983},\n \"runtime.goroutines\": 5\n}\n```\n\nIn the above case, the exported variables will be available under `runtime.goroutines`,\n`counters.cnt1` and `counters.cnt2` expvar_keys. If the flattening results in a key collision,\nthe first defined key wins and all subsequent keys with the same name are ignored.\n\n\n```yaml\napp1:\n name : 'app1'\n url : 'http://127.0.0.1:8080/debug/vars'\n collect_memstats: true\n extra_charts:\n - id: \"runtime_goroutines\"\n options:\n name: num_goroutines\n title: \"runtime: number of goroutines\"\n units: goroutines\n family: runtime\n context: expvar.runtime.goroutines\n chart_type: line\n lines:\n - {expvar_key: 'runtime.goroutines', expvar_type: int, id: runtime_goroutines}\n - id: \"foo_counters\"\n options:\n name: counters\n title: \"some random counters\"\n units: awesomeness\n family: counters\n context: expvar.foo.counters\n chart_type: line\n lines:\n - {expvar_key: 'counters.cnt1', expvar_type: int, id: counters_cnt1}\n - {expvar_key: 'counters.cnt2', expvar_type: float, id: counters_cnt2}\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `go_expvar` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin go_expvar debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Go applications instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| expvar.memstats.heap | alloc, inuse | KiB |\n| expvar.memstats.stack | inuse | KiB |\n| expvar.memstats.mspan | inuse | KiB |\n| expvar.memstats.mcache | inuse | KiB |\n| expvar.memstats.live_objects | live | objects |\n| expvar.memstats.sys | sys | KiB |\n| expvar.memstats.gc_pauses | avg | ns |\n\n", "integration_type": "collector", "id": "python.d.plugin-go_expvar-Go_applications", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/go_expvar/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "hddtemp", "monitored_instance": {"name": "HDD temperature", "link": "https://linux.die.net/man/8/hddtemp", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["hardware", "hdd temperature", "disk temperature", "temperature"], "most_popular": false}, "overview": "# HDD temperature\n\n## Overview\n\nThis collector monitors disk temperatures.\n\n\nIt uses the `hddtemp` daemon to gather the metrics.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to the `hddtemp` daemon on `127.0.0.1:7634`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Run `hddtemp` in daemon mode\n\nYou can execute `hddtemp` in TCP/IP daemon mode by using the `-d` argument.\n\nSo running `hddtemp -d` would run the daemon, by default on port 7634.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/hddtemp.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/hddtemp.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\nBy default this collector will try to autodetect disks (autodetection works only for disk which names start with \"sd\"). However this can be overridden by setting the option `disks` to an array of desired disks.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n| devices | Array of desired disks to detect, in case their name doesn't start with `sd`. | | False |\n| host | The IP or HOSTNAME to connect to. | | True |\n| port | The port to connect to. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n\n```\n##### Custom disk names\n\nAn example defining the disk names to detect.\n\n{% details summary=\"\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n devices:\n - customdisk1\n - customdisk2\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 7634\n\nremote_job:\n name : 'remote'\n host : 'http://192.0.2.1:2812'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hddtemp` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin hddtemp debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HDD temperature instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hddtemp.temperatures | a dimension per disk | Celsius |\n\n", "integration_type": "collector", "id": "python.d.plugin-hddtemp-HDD_temperature", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/hddtemp/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "hpssa", "monitored_instance": {"name": "HP Smart Storage Arrays", "link": "https://buy.hpe.com/us/en/software/server-management-software/server-management-software/smart-array-management-software/hpe-smart-storage-administrator/p/5409020", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "hp.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["storage", "hp", "hpssa", "array"], "most_popular": false}, "overview": "# HP Smart Storage Arrays\n\n## Overview\n\nThis collector monitors HP Smart Storage Arrays metrics about operational statuses and temperatures.\n\nIt uses the command line tool `ssacli`. The exact command used is `sudo -n ssacli ctrl all show config detail`\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is provided, the collector will try to execute the `ssacli` binary.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Allow user netdata to execute `ssacli` as root.\n\nThis module uses `ssacli`, which can only be executed by root. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `ssacli` as root without a password.\n\n- Add to your `/etc/sudoers` file:\n\n`which ssacli` shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/ssacli\n```\n\n- Reset Netdata's systemd\n unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux\n distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `ssacli` using `sudo`.\n\nAs the `root` user, do the following:\n\n```cmd\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/hpssa.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/hpssa.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| ssacli_path | Path to the `ssacli` command line utility. Configure this if `ssacli` is not in the $PATH | | False |\n| use_sudo | Whether or not to use `sudo` to execute `ssacli` | | False |\n\n{% /details %}\n#### Examples\n\n##### Local simple config\n\nA basic configuration, specyfing the path to `ssacli`\n\n```yaml\nlocal:\n ssacli_path: /usr/sbin/ssacli\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `hpssa` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin hpssa debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per HP Smart Storage Arrays instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| hpssa.ctrl_status | ctrl_{adapter slot}_status, cache_{adapter slot}_status, battery_{adapter slot}_status per adapter | Status |\n| hpssa.ctrl_temperature | ctrl_{adapter slot}_temperature, cache_{adapter slot}_temperature per adapter | Celsius |\n| hpssa.ld_status | a dimension per logical drive | Status |\n| hpssa.pd_status | a dimension per physical drive | Status |\n| hpssa.pd_temperature | a dimension per physical drive | Celsius |\n\n", "integration_type": "collector", "id": "python.d.plugin-hpssa-HP_Smart_Storage_Arrays", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/hpssa/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "icecast", "monitored_instance": {"name": "Icecast", "link": "https://icecast.org/", "categories": ["data-collection.media-streaming-servers"], "icon_filename": "icecast.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["icecast", "streaming", "media"], "most_popular": false}, "overview": "# Icecast\n\n## Overview\n\nThis collector monitors Icecast listener counts.\n\nIt connects to an icecast URL and uses the `status-json.xsl` endpoint to retrieve statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWithout configuration, the collector attempts to connect to http://localhost:8443/status-json.xsl\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Icecast minimum version\n\nNeeds at least icecast version >= 2.4.0\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/icecast.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/icecast.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| url | The URL (and port) to the icecast server. Needs to also include `/status-json.xsl` | | False |\n| user | Username to use to connect to `url` if it's password protected. | | False |\n| pass | Password to use to connect to `url` if it's password protected. | | False |\n\n{% /details %}\n#### Examples\n\n##### Remote Icecast server\n\nConfigure a remote icecast server\n\n```yaml\nremote:\n url: 'http://1.2.3.4:8443/status-json.xsl'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `icecast` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin icecast debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Icecast instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| icecast.listeners | a dimension for each active source | listeners |\n\n", "integration_type": "collector", "id": "python.d.plugin-icecast-Icecast", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/icecast/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "ipfs", "monitored_instance": {"name": "IPFS", "link": "https://ipfs.tech/", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "ipfs.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# IPFS\n\n## Overview\n\nThis collector monitors IPFS server metrics about its quality and performance.\n\nIt connects to an http endpoint of the IPFS server to collect the metrics\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the endpoint is accessible by the Agent, netdata will autodetect it\n\n#### Limits\n\nCalls to the following endpoints are disabled due to IPFS bugs:\n\n/api/v0/stats/repo (https://github.com/ipfs/go-ipfs/issues/3874)\n/api/v0/pin/ls (https://github.com/ipfs/go-ipfs/issues/7528)\n\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/ipfs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/ipfs.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | The JOB's name as it will appear at the dashboard (by default is the job_name) | | False |\n| url | URL to the IPFS API | | True |\n| repoapi | Collect repo metrics. | | False |\n| pinapi | Set status of IPFS pinned object polling. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic (default out-of-the-box)\n\nA basic example configuration, one job will run at a time. Autodetect mechanism uses it by default.\n\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:5001'\n repoapi: no\n pinapi: no\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:5001'\n repoapi: no\n pinapi: no\n\nremote_host:\n name: 'remote'\n url: 'http://192.0.2.1:5001'\n repoapi: no\n pinapi: no\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `ipfs` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin ipfs debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ ipfs_datastore_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/ipfs.conf) | ipfs.repo_size | IPFS datastore utilization |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per IPFS instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| ipfs.bandwidth | in, out | kilobits/s |\n| ipfs.peers | peers | peers |\n| ipfs.repo_size | avail, size | GiB |\n| ipfs.repo_objects | objects, pinned, recursive_pins | objects |\n\n", "integration_type": "collector", "id": "python.d.plugin-ipfs-IPFS", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/ipfs/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "litespeed", "monitored_instance": {"name": "Litespeed", "link": "https://www.litespeedtech.com/products/litespeed-web-server", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "litespeed.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["litespeed", "web", "server"], "most_popular": false}, "overview": "# Litespeed\n\n## Overview\n\nExamine Litespeed metrics for insights into web server operations. Analyze request rates, response times, and error rates for efficient web service delivery.\n\nThe collector uses the statistics under /tmp/lshttpd to gather the metrics.\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is present, the collector will attempt to read files under /tmp/lshttpd/.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/litespeed.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/litespeed.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| path | Use a different path than the default, where the lightspeed stats files reside. | | False |\n\n{% /details %}\n#### Examples\n\n##### Set the path to statistics\n\nChange the path for the litespeed stats files\n\n```yaml\nlocalhost:\n name: 'local'\n path: '/tmp/lshttpd'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `litespeed` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin litespeed debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Litespeed instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| litespeed.net_throughput | in, out | kilobits/s |\n| litespeed.net_throughput | in, out | kilobits/s |\n| litespeed.connections | free, used | conns |\n| litespeed.connections | free, used | conns |\n| litespeed.requests | requests | requests/s |\n| litespeed.requests_processing | processing | requests |\n| litespeed.cache | hits | hits/s |\n| litespeed.cache | hits | hits/s |\n| litespeed.static | hits | hits/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-litespeed-Litespeed", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/litespeed/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "megacli", "monitored_instance": {"name": "MegaCLI", "link": "https://wikitech.wikimedia.org/wiki/MegaCli", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "hard-drive.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["storage", "raid-controller", "manage-disks"], "most_popular": false}, "overview": "# MegaCLI\n\n## Overview\n\nExamine MegaCLI metrics with Netdata for insights into RAID controller performance. Improve your RAID controller efficiency with real-time MegaCLI metrics.\n\nCollects adapter, physical drives and battery stats using megacli command-line tool\n\nExecuted commands:\n\nsudo -n megacli -LDPDInfo -aAll\nsudo -n megacli -AdpBbuCmd -a0\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThe module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password.\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, netdata should be to execute commands via the megacli command line utility\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Grant permissions for netdata, to run megacli as sudoer\n\nThe module uses megacli, which can only be executed by root. It uses sudo and assumes that it is configured such that the netdata user can execute megacli as root without a password.\n\nAdd to your /etc/sudoers file:\nwhich megacli shows the full path to the binary.\n\n```bash\nnetdata ALL=(root) NOPASSWD: /path/to/megacli\n```\n\n\n#### Reset Netdata's systemd unit CapabilityBoundingSet (Linux distributions with systemd)\n\nThe default CapabilityBoundingSet doesn't allow using sudo, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute arcconf using sudo.\n\nAs root user, do the following:\n\n```bash\nmkdir /etc/systemd/system/netdata.service.d\necho -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\nsystemctl daemon-reload\nsystemctl restart netdata.service\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/megacli.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/megacli.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| do_battery | default is no. Battery stats (adds additional call to megacli `megacli -AdpBbuCmd -a0`). | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration per job\n\n```yaml\njob_name:\n name: myname\n update_every: 1\n priority: 60000\n penalty: yes\n autodetection_retry: 0\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `megacli` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin megacli debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ megacli_adapter_state ](https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf) | megacli.adapter_degraded | adapter is in the degraded state (0: false, 1: true) |\n| [ megacli_pd_media_errors ](https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf) | megacli.pd_media_error | number of physical drive media errors |\n| [ megacli_pd_predictive_failures ](https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf) | megacli.pd_predictive_failure | number of physical drive predictive failures |\n| [ megacli_bbu_relative_charge ](https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf) | megacli.bbu_relative_charge | average battery backup unit (BBU) relative state of charge over the last 10 seconds |\n| [ megacli_bbu_cycle_count ](https://github.com/netdata/netdata/blob/master/health/health.d/megacli.conf) | megacli.bbu_cycle_count | average battery backup unit (BBU) charge cycles count over the last 10 seconds |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per MegaCLI instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| megacli.adapter_degraded | a dimension per adapter | is degraded |\n| megacli.pd_media_error | a dimension per physical drive | errors/s |\n| megacli.pd_predictive_failure | a dimension per physical drive | failures/s |\n\n### Per battery\n\nMetrics related to Battery Backup Units, each BBU provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| megacli.bbu_relative_charge | adapter {battery id} | percentage |\n| megacli.bbu_cycle_count | adapter {battery id} | cycle count |\n\n", "integration_type": "collector", "id": "python.d.plugin-megacli-MegaCLI", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/megacli/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "memcached", "monitored_instance": {"name": "Memcached", "link": "https://memcached.org/", "categories": ["data-collection.database-servers"], "icon_filename": "memcached.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["memcached", "memcache", "cache", "database"], "most_popular": false}, "overview": "# Memcached\n\n## Overview\n\nMonitor Memcached metrics for proficient in-memory key-value store operations. Track cache hits, misses, and memory usage for efficient data caching.\n\nIt reads server response to stats command ([stats interface](https://github.com/memcached/memcached/wiki/Commands#stats)).\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is given, collector will attempt to connect to memcached instance on `127.0.0.1:11211` address.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/memcached.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/memcached.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| host | the host to connect to. | | False |\n| port | the port to connect to. | | False |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### localhost\n\nAn example configuration for localhost.\n\n```yaml\nlocalhost:\n name: 'local'\n host: 'localhost'\n port: 11211\n\n```\n##### localipv4\n\nAn example configuration for localipv4.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 11211\n\n```\n{% /details %}\n##### localipv6\n\nAn example configuration for localipv6.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n host: '::1'\n port: 11211\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `memcached` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin memcached debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ memcached_cache_memory_usage ](https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf) | memcached.cache | cache memory utilization |\n| [ memcached_cache_fill_rate ](https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf) | memcached.cache | average rate the cache fills up (positive), or frees up (negative) space over the last hour |\n| [ memcached_out_of_cache_space_time ](https://github.com/netdata/netdata/blob/master/health/health.d/memcached.conf) | memcached.cache | estimated time the cache will run out of space if the system continues to add data at the same rate as the past hour |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Memcached instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| memcached.cache | available, used | MiB |\n| memcached.net | in, out | kilobits/s |\n| memcached.connections | current, rejected, total | connections/s |\n| memcached.items | current, total | items |\n| memcached.evicted_reclaimed | reclaimed, evicted | items |\n| memcached.get | hints, misses | requests |\n| memcached.get_rate | rate | requests/s |\n| memcached.set_rate | rate | requests/s |\n| memcached.delete | hits, misses | requests |\n| memcached.cas | hits, misses, bad value | requests |\n| memcached.increment | hits, misses | requests |\n| memcached.decrement | hits, misses | requests |\n| memcached.touch | hits, misses | requests |\n| memcached.touch_rate | rate | requests/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-memcached-Memcached", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/memcached/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "monit", "monitored_instance": {"name": "Monit", "link": "https://mmonit.com/monit/", "categories": ["data-collection.synthetic-checks"], "icon_filename": "monit.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["monit", "mmonit", "supervision tool", "monitrc"], "most_popular": false}, "overview": "# Monit\n\n## Overview\n\nThis collector monitors Monit targets such as filesystems, directories, files, FIFO pipes and more.\n\n\nIt gathers data from Monit's XML interface.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to Monit at `http://localhost:2812`\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/monit.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/monit.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n| url | The URL to fetch Monit's metrics. | | True |\n| user | Username in case the URL is password protected. | | False |\n| pass | Password in case the URL is password protected. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:2812'\n\n```\n##### Basic Authentication\n\nExample using basic username and password in order to authenticate.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:2812'\n user: 'foo'\n pass: 'bar'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local'\n url: 'http://localhost:2812'\n\nremote_job:\n name: 'remote'\n url: 'http://192.0.2.1:2812'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `monit` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin monit debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Monit instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| monit.filesystems | a dimension per target | filesystems |\n| monit.directories | a dimension per target | directories |\n| monit.files | a dimension per target | files |\n| monit.fifos | a dimension per target | pipes |\n| monit.programs | a dimension per target | programs |\n| monit.services | a dimension per target | processes |\n| monit.process_uptime | a dimension per target | seconds |\n| monit.process_threads | a dimension per target | threads |\n| monit.process_childrens | a dimension per target | children |\n| monit.hosts | a dimension per target | hosts |\n| monit.host_latency | a dimension per target | milliseconds |\n| monit.networks | a dimension per target | interfaces |\n\n", "integration_type": "collector", "id": "python.d.plugin-monit-Monit", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/monit/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "nsd", "monitored_instance": {"name": "Name Server Daemon", "link": "https://nsd.docs.nlnetlabs.nl/en/latest/#", "categories": ["data-collection.dns-and-dhcp-servers"], "icon_filename": "nsd.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["nsd", "name server daemon"], "most_popular": false}, "overview": "# Name Server Daemon\n\n## Overview\n\nThis collector monitors NSD statistics like queries, zones, protocols, query types and more.\n\n\nIt uses the `nsd-control stats_noreset` command to gather metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf permissions are satisfied, the collector will be able to run `nsd-control stats_noreset`, thus collecting metrics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Provide Netdata the permissions to run the command\n\nNetdata must have permissions to run the `nsd-control stats_noreset` command.\n\nYou can:\n\n- Add \"netdata\" user to \"nsd\" group:\n ```\n usermod -aG nsd netdata\n ```\n- Add Netdata to sudoers\n 1. Edit the sudoers file:\n ```\n visudo -f /etc/sudoers.d/netdata\n ```\n 2. Add the entry:\n ```\n Defaults:netdata !requiretty\n netdata ALL=(ALL) NOPASSWD: /usr/sbin/nsd-control stats_noreset\n ```\n\n > Note that you will need to set the `command` option to `sudo /usr/sbin/nsd-control stats_noreset` if you use this method.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/nsd.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/nsd.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n| command | The command to run | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocal:\n name: 'nsd_local'\n command: 'nsd-control stats_noreset'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `nsd` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin nsd debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Name Server Daemon instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| nsd.queries | queries | queries/s |\n| nsd.zones | master, slave | zones |\n| nsd.protocols | udp, udp6, tcp, tcp6 | queries/s |\n| nsd.type | A, NS, CNAME, SOA, PTR, HINFO, MX, NAPTR, TXT, AAAA, SRV, ANY | queries/s |\n| nsd.transfer | NOTIFY, AXFR | queries/s |\n| nsd.rcode | NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP, REFUSED, YXDOMAIN | queries/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-nsd-Name_Server_Daemon", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/nsd/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "openldap", "monitored_instance": {"name": "OpenLDAP", "link": "https://www.openldap.org/", "categories": ["data-collection.authentication-and-authorization"], "icon_filename": "statsd.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["openldap", "RBAC", "Directory access"], "most_popular": false}, "overview": "# OpenLDAP\n\n## Overview\n\nThis collector monitors OpenLDAP metrics about connections, operations, referrals and more.\n\nStatistics are taken from the monitoring interface of a openLDAP (slapd) server\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector doesn't work until all the prerequisites are checked.\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure the openLDAP server to expose metrics to monitor it.\n\nFollow instructions from https://www.openldap.org/doc/admin24/monitoringslapd.html to activate monitoring interface.\n\n\n#### Install python-ldap module\n\nInstall python ldap module \n\n1. From pip package manager\n\n```bash\npip install ldap\n```\n\n2. With apt package manager (in most deb based distros)\n\n\n```bash\napt-get install python-ldap\n```\n\n\n3. With yum package manager (in most rpm based distros)\n\n\n```bash\nyum install python-ldap\n```\n\n\n#### Insert credentials for Netdata to access openLDAP server\n\nUse the `ldappasswd` utility to set a password for the username you will use.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/openldap.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/openldap.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| username | The bind user with right to access monitor statistics | | True |\n| password | The password for the binded user | | True |\n| server | The listening address of the LDAP server. In case of TLS, use the hostname which the certificate is published for. | | True |\n| port | The listening port of the LDAP server. Change to 636 port in case of TLS connection. | | True |\n| use_tls | Make True if a TLS connection is used over ldaps:// | | False |\n| use_start_tls | Make True if a TLS connection is used over ldap:// | | False |\n| cert_check | False if you want to ignore certificate check | | True |\n| timeout | Seconds to timeout if no connection exist | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\nusername: \"cn=admin\"\npassword: \"pass\"\nserver: \"localhost\"\nport: \"389\"\ncheck_cert: True\ntimeout: 1\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `openldap` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin openldap debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per OpenLDAP instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| openldap.total_connections | connections | connections/s |\n| openldap.traffic_stats | sent | KiB/s |\n| openldap.operations_status | completed, initiated | ops/s |\n| openldap.referrals | sent | referrals/s |\n| openldap.entries | sent | entries/s |\n| openldap.ldap_operations | bind, search, unbind, add, delete, modify, compare | ops/s |\n| openldap.waiters | write, read | waiters/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-openldap-OpenLDAP", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/openldap/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "oracledb", "monitored_instance": {"name": "Oracle DB", "link": "https://docs.oracle.com/en/database/oracle/oracle-database/", "categories": ["data-collection.database-servers"], "icon_filename": "oracle.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["database", "oracle", "data warehouse", "SQL"], "most_popular": false}, "overview": "# Oracle DB\n\n## Overview\n\nThis collector monitors OracleDB database metrics about sessions, tables, memory and more.\n\nIt collects the metrics via the supported database client library\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nIn order for this collector to work, it needs a read-only user `netdata` in the RDBMS.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen the requirements are met, databases on the local host on port 1521 will be auto-detected\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Install the python-oracledb package\n\nYou can follow the official guide below to install the required package:\n\nSource: https://python-oracledb.readthedocs.io/en/latest/user_guide/installation.html\n\n\n#### Create a read only user for netdata\n\nFollow the official instructions for your oracle RDBMS to create a read-only user for netdata. The operation may follow this approach\n\nConnect to your Oracle database with an administrative user and execute:\n\n```bash\nCREATE USER netdata IDENTIFIED BY ;\n\nGRANT CONNECT TO netdata;\nGRANT SELECT_CATALOG_ROLE TO netdata;\n```\n\n\n#### Edit the configuration\n\nEdit the configuration troubleshooting:\n\n1. Provide a valid user for the netdata collector to access the database\n2. Specify the network target this database is listening.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/oracledb.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/oracledb.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| user | The username for the user account. | | True |\n| password | The password for the user account. | | True |\n| server | The IP address or hostname (and port) of the Oracle Database Server. | | True |\n| service | The Oracle Database service name. To view the services available on your server run this query, `select SERVICE_NAME from gv$session where sid in (select sid from V$MYSTAT)`. | | True |\n| protocol | one of the strings \"tcp\" or \"tcps\" indicating whether to use unencrypted network traffic or encrypted network traffic | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration, two jobs described for two databases.\n\n```yaml\nlocal:\n user: 'netdata'\n password: 'secret'\n server: 'localhost:1521'\n service: 'XE'\n protocol: 'tcps'\n\nremote:\n user: 'netdata'\n password: 'secret'\n server: '10.0.0.1:1521'\n service: 'XE'\n protocol: 'tcps'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `oracledb` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin oracledb debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThese metrics refer to the entire monitored application.\n\n### Per Oracle DB instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| oracledb.session_count | total, active | sessions |\n| oracledb.session_limit_usage | usage | % |\n| oracledb.logons | logons | events/s |\n| oracledb.physical_disk_read_writes | reads, writes | events/s |\n| oracledb.sorts_on_disks | sorts | events/s |\n| oracledb.full_table_scans | full table scans | events/s |\n| oracledb.database_wait_time_ratio | wait time ratio | % |\n| oracledb.shared_pool_free_memory | free memory | % |\n| oracledb.in_memory_sorts_ratio | in-memory sorts | % |\n| oracledb.sql_service_response_time | time | seconds |\n| oracledb.user_rollbacks | rollbacks | events/s |\n| oracledb.enqueue_timeouts | enqueue timeouts | events/s |\n| oracledb.cache_hit_ration | buffer, cursor, library, row | % |\n| oracledb.global_cache_blocks | corrupted, lost | events/s |\n| oracledb.activity | parse count, execute count, user commits, user rollbacks | events/s |\n| oracledb.wait_time | application, configuration, administrative, concurrency, commit, network, user I/O, system I/O, scheduler, other | ms |\n| oracledb.tablespace_size | a dimension per active tablespace | KiB |\n| oracledb.tablespace_usage | a dimension per active tablespace | KiB |\n| oracledb.tablespace_usage_in_percent | a dimension per active tablespace | % |\n| oracledb.allocated_size | a dimension per active tablespace | B |\n| oracledb.allocated_usage | a dimension per active tablespace | B |\n| oracledb.allocated_usage_in_percent | a dimension per active tablespace | % |\n\n", "integration_type": "collector", "id": "python.d.plugin-oracledb-Oracle_DB", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/oracledb/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "pandas", "monitored_instance": {"name": "Pandas", "link": "https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas", "categories": ["data-collection.generic-data-collection"], "icon_filename": "pandas.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["pandas", "python"], "most_popular": false}, "overview": "# Pandas\n\n## Overview\n\n[Pandas](https://pandas.pydata.org/) is a de-facto standard in reading and processing most types of structured data in Python.\nIf you have metrics appearing in a CSV, JSON, XML, HTML, or [other supported format](https://pandas.pydata.org/docs/user_guide/io.html),\neither locally or via some HTTP endpoint, you can easily ingest and present those metrics in Netdata, by leveraging the Pandas collector.\n\nThis collector can be used to collect pretty much anything that can be read by Pandas, and then processed by Pandas.\n\nMore detailed information can be found in the Netdata documentation [here](https://learn.netdata.cloud/docs/data-collection/generic-data-collection/structured-data-pandas).\n\n\nThe collector uses [pandas](https://pandas.pydata.org/) to pull data and do pandas-based preprocessing, before feeding to Netdata.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Python Requirements\n\nThis collector depends on some Python (Python 3 only) packages that can usually be installed via `pip` or `pip3`.\n\n```bash\nsudo pip install pandas requests\n```\n\nNote: If you would like to use [`pandas.read_sql`](https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html) to query a database, you will need to install the below packages as well.\n\n```bash\nsudo pip install 'sqlalchemy<2.0' psycopg2-binary\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/pandas.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/pandas.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| chart_configs | an array of chart configuration dictionaries | | True |\n| chart_configs.name | name of the chart to be displayed in the dashboard. | | True |\n| chart_configs.title | title of the chart to be displayed in the dashboard. | | True |\n| chart_configs.family | [family](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#family) of the chart to be displayed in the dashboard. | | True |\n| chart_configs.context | [context](https://learn.netdata.cloud/docs/data-collection/chart-dimensions-contexts-and-families#context) of the chart to be displayed in the dashboard. | | True |\n| chart_configs.type | the type of the chart to be displayed in the dashboard. | | True |\n| chart_configs.units | the units of the chart to be displayed in the dashboard. | | True |\n| chart_configs.df_steps | a series of pandas operations (one per line) that each returns a dataframe. | | True |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Temperature API Example\n\nexample pulling some hourly temperature data, a chart for today forecast (mean,min,max) and another chart for current.\n\n{% details summary=\"Config\" %}\n```yaml\ntemperature:\n name: \"temperature\"\n update_every: 5\n chart_configs:\n - name: \"temperature_forecast_by_city\"\n title: \"Temperature By City - Today Forecast\"\n family: \"temperature.today\"\n context: \"pandas.temperature\"\n type: \"line\"\n units: \"Celsius\"\n df_steps: >\n pd.DataFrame.from_dict(\n {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}&hourly=temperature_2m').json()['hourly']['temperature_2m']\n for (city,lat,lng)\n in [\n ('dublin', 53.3441, -6.2675),\n ('athens', 37.9792, 23.7166),\n ('london', 51.5002, -0.1262),\n ('berlin', 52.5235, 13.4115),\n ('paris', 48.8567, 2.3510),\n ('madrid', 40.4167, -3.7033),\n ('new_york', 40.71, -74.01),\n ('los_angeles', 34.05, -118.24),\n ]\n }\n );\n df.describe(); # get aggregate stats for each city;\n df.transpose()[['mean', 'max', 'min']].reset_index(); # just take mean, min, max;\n df.rename(columns={'index':'city'}); # some column renaming;\n df.pivot(columns='city').mean().to_frame().reset_index(); # force to be one row per city;\n df.rename(columns={0:'degrees'}); # some column renaming;\n pd.concat([df, df['city']+'_'+df['level_0']], axis=1); # add new column combining city and summary measurement label;\n df.rename(columns={0:'measurement'}); # some column renaming;\n df[['measurement', 'degrees']].set_index('measurement'); # just take two columns we want;\n df.sort_index(); # sort by city name;\n df.transpose(); # transpose so its just one wide row;\n - name: \"temperature_current_by_city\"\n title: \"Temperature By City - Current\"\n family: \"temperature.current\"\n context: \"pandas.temperature\"\n type: \"line\"\n units: \"Celsius\"\n df_steps: >\n pd.DataFrame.from_dict(\n {city: requests.get(f'https://api.open-meteo.com/v1/forecast?latitude={lat}&longitude={lng}¤t_weather=true').json()['current_weather']\n for (city,lat,lng)\n in [\n ('dublin', 53.3441, -6.2675),\n ('athens', 37.9792, 23.7166),\n ('london', 51.5002, -0.1262),\n ('berlin', 52.5235, 13.4115),\n ('paris', 48.8567, 2.3510),\n ('madrid', 40.4167, -3.7033),\n ('new_york', 40.71, -74.01),\n ('los_angeles', 34.05, -118.24),\n ]\n }\n );\n df.transpose();\n df[['temperature']];\n df.transpose();\n\n```\n{% /details %}\n##### API CSV Example\n\nexample showing a read_csv from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_csv:\n name: \"example_csv\"\n update_every: 2\n chart_configs:\n - name: \"london_system_cpu\"\n title: \"London System CPU - Ratios\"\n family: \"london_system_cpu\"\n context: \"pandas\"\n type: \"line\"\n units: \"n\"\n df_steps: >\n pd.read_csv('https://london.my-netdata.io/api/v1/data?chart=system.cpu&format=csv&after=-60', storage_options={'User-Agent': 'netdata'});\n df.drop('time', axis=1);\n df.mean().to_frame().transpose();\n df.apply(lambda row: (row.user / row.system), axis = 1).to_frame();\n df.rename(columns={0:'average_user_system_ratio'});\n df*100;\n\n```\n{% /details %}\n##### API JSON Example\n\nexample showing a read_json from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_json:\n name: \"example_json\"\n update_every: 2\n chart_configs:\n - name: \"london_system_net\"\n title: \"London System Net - Total Bandwidth\"\n family: \"london_system_net\"\n context: \"pandas\"\n type: \"area\"\n units: \"kilobits/s\"\n df_steps: >\n pd.DataFrame(requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['data'], columns=requests.get('https://london.my-netdata.io/api/v1/data?chart=system.net&format=json&after=-1').json()['labels']);\n df.drop('time', axis=1);\n abs(df);\n df.sum(axis=1).to_frame();\n df.rename(columns={0:'total_bandwidth'});\n\n```\n{% /details %}\n##### XML Example\n\nexample showing a read_xml from a url and some light pandas data wrangling.\n\n{% details summary=\"Config\" %}\n```yaml\nexample_xml:\n name: \"example_xml\"\n update_every: 2\n line_sep: \"|\"\n chart_configs:\n - name: \"temperature_forcast\"\n title: \"Temperature Forecast\"\n family: \"temp\"\n context: \"pandas.temp\"\n type: \"line\"\n units: \"celsius\"\n df_steps: >\n pd.read_xml('http://metwdb-openaccess.ichec.ie/metno-wdb2ts/locationforecast?lat=54.7210798611;long=-8.7237392806', xpath='./product/time[1]/location/temperature', parser='etree')|\n df.rename(columns={'value': 'dublin'})|\n df[['dublin']]|\n\n```\n{% /details %}\n##### SQL Example\n\nexample showing a read_sql from a postgres database using sqlalchemy.\n\n{% details summary=\"Config\" %}\n```yaml\nsql:\n name: \"sql\"\n update_every: 5\n chart_configs:\n - name: \"sql\"\n title: \"SQL Example\"\n family: \"sql.example\"\n context: \"example\"\n type: \"line\"\n units: \"percent\"\n df_steps: >\n pd.read_sql_query(\n sql='\\\n select \\\n random()*100 as metric_1, \\\n random()*100 as metric_2 \\\n ',\n con=create_engine('postgresql://localhost/postgres?user=netdata&password=netdata')\n );\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `pandas` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin pandas debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThis collector is expecting one row in the final pandas DataFrame. It is that first row that will be taken\nas the most recent values for each dimension on each chart using (`df.to_dict(orient='records')[0]`).\nSee [pd.to_dict()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_dict.html).\"\n\n\n### Per Pandas instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n\n", "integration_type": "collector", "id": "python.d.plugin-pandas-Pandas", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/pandas/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "postfix", "monitored_instance": {"name": "Postfix", "link": "https://www.postfix.org/", "categories": ["data-collection.mail-servers"], "icon_filename": "postfix.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["postfix", "mail", "mail server"], "most_popular": false}, "overview": "# Postfix\n\n## Overview\n\nKeep an eye on Postfix metrics for efficient mail server operations. \nImprove your mail server performance with Netdata's real-time metrics and built-in alerts.\n\n\nMonitors MTA email queue statistics using [postqueue](http://www.postfix.org/postqueue.1.html) tool.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nPostfix has internal access controls that limit activities on the mail queue. By default, all users are allowed to view the queue. If your system is configured with stricter access controls, you need to grant the `netdata` user access to view the mail queue. In order to do it, add `netdata` to `authorized_mailq_users` in the `/etc/postfix/main.cf` file.\nSee the `authorized_mailq_users` setting in the [Postfix documentation](https://www.postfix.org/postconf.5.html) for more details.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector executes `postqueue -p` to get Postfix queue statistics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThere is no configuration file.\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `postfix` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin postfix debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Postfix instance\n\nThese metrics refer to the entire monitored application.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| postfix.qemails | emails | emails |\n| postfix.qsize | size | KiB |\n\n", "integration_type": "collector", "id": "python.d.plugin-postfix-Postfix", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/postfix/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "puppet", "monitored_instance": {"name": "Puppet", "link": "https://www.puppet.com/", "categories": ["data-collection.ci-cd-systems"], "icon_filename": "puppet.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["puppet", "jvm heap"], "most_popular": false}, "overview": "# Puppet\n\n## Overview\n\nThis collector monitors Puppet metrics about JVM Heap, Non-Heap, CPU usage and file descriptors.'\n\n\nIt uses Puppet's metrics API endpoint to gather the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will use `https://fqdn.example.com:8140` as the URL to look for metrics.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/puppet.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/puppet.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n> Notes:\n> - Exact Fully Qualified Domain Name of the node should be used.\n> - Usually Puppet Server/DB startup time is VERY long. So, there should be quite reasonable retry count.\n> - A secured PuppetDB config may require a client certificate. This does not apply to the default PuppetDB configuration though.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| url | HTTP or HTTPS URL, exact Fully Qualified Domain Name of the node should be used. | | True |\n| tls_verify | Control HTTPS server certificate verification. | | False |\n| tls_ca_file | Optional CA (bundle) file to use | | False |\n| tls_cert_file | Optional client certificate file | | False |\n| tls_key_file | Optional client key file | | False |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration\n\n```yaml\npuppetserver:\n url: 'https://fqdn.example.com:8140'\n autodetection_retry: 1\n\n```\n##### TLS Certificate\n\nAn example using a TLS certificate\n\n{% details summary=\"Config\" %}\n```yaml\npuppetdb:\n url: 'https://fqdn.example.com:8081'\n tls_cert_file: /path/to/client.crt\n tls_key_file: /path/to/client.key\n autodetection_retry: 1\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\npuppetserver1:\n url: 'https://fqdn.example.com:8140'\n autodetection_retry: 1\n\npuppetserver2:\n url: 'https://fqdn.example2.com:8140'\n autodetection_retry: 1\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `puppet` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin puppet debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Puppet instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| puppet.jvm | committed, used | MiB |\n| puppet.jvm | committed, used | MiB |\n| puppet.cpu | execution, GC | percentage |\n| puppet.fdopen | used | descriptors |\n\n", "integration_type": "collector", "id": "python.d.plugin-puppet-Puppet", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/puppet/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "rethinkdbs", "monitored_instance": {"name": "RethinkDB", "link": "https://rethinkdb.com/", "categories": ["data-collection.database-servers"], "icon_filename": "rethinkdb.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["rethinkdb", "database", "db"], "most_popular": false}, "overview": "# RethinkDB\n\n## Overview\n\nThis collector monitors metrics about RethinkDB clusters and database servers.\n\nIt uses the `rethinkdb` python module to connect to a RethinkDB server instance and gather statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nWhen no configuration file is found, the collector tries to connect to 127.0.0.1:28015.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required python module\n\nThe collector requires the `rethinkdb` python module to be installed.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/rethinkdbs.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/rethinkdbs.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| host | Hostname or ip of the RethinkDB server. | | False |\n| port | Port to connect to the RethinkDB server. | | False |\n| user | The username to use to connect to the RethinkDB server. | | False |\n| password | The password to use to connect to the RethinkDB server. | | False |\n| timeout | Set a connect timeout to the RethinkDB server. | | False |\n\n{% /details %}\n#### Examples\n\n##### Local RethinkDB server\n\nAn example of a configuration for a local RethinkDB server\n\n```yaml\nlocalhost:\n name: 'local'\n host: '127.0.0.1'\n port: 28015\n user: \"user\"\n password: \"pass\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `rethinkdbs` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin rethinkdbs debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RethinkDB instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rethinkdb.cluster_connected_servers | connected, missing | servers |\n| rethinkdb.cluster_clients_active | active | clients |\n| rethinkdb.cluster_queries | queries | queries/s |\n| rethinkdb.cluster_documents | reads, writes | documents/s |\n\n### Per database server\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| rethinkdb.client_connections | connections | connections |\n| rethinkdb.clients_active | active | clients |\n| rethinkdb.queries | queries | queries/s |\n| rethinkdb.documents | reads, writes | documents/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-rethinkdbs-RethinkDB", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/rethinkdbs/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "retroshare", "monitored_instance": {"name": "RetroShare", "link": "https://retroshare.cc/", "categories": ["data-collection.media-streaming-servers"], "icon_filename": "retroshare.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["retroshare", "p2p"], "most_popular": false}, "overview": "# RetroShare\n\n## Overview\n\nThis collector monitors RetroShare statistics such as application bandwidth, peers, and DHT metrics.\n\nIt connects to the RetroShare web interface to gather metrics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will attempt to connect and detect a RetroShare web interface through http://localhost:9090, even without any configuration.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### RetroShare web interface\n\nRetroShare needs to be configured to enable the RetroShare WEB Interface and allow access from the Netdata host.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/retroshare.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/retroshare.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| url | The URL to the RetroShare Web UI. | | False |\n\n{% /details %}\n#### Examples\n\n##### Local RetroShare Web UI\n\nA basic configuration for a RetroShare server running on localhost.\n\n{% details summary=\"Config\" %}\n```yaml\nlocalhost:\n name: 'local retroshare'\n url: 'http://localhost:9090'\n\n```\n{% /details %}\n##### Remote RetroShare Web UI\n\nA basic configuration for a remote RetroShare server.\n\n{% details summary=\"Config\" %}\n```yaml\nremote:\n name: 'remote retroshare'\n url: 'http://1.2.3.4:9090'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `retroshare` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin retroshare debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ retroshare_dht_working ](https://github.com/netdata/netdata/blob/master/health/health.d/retroshare.conf) | retroshare.dht | number of DHT peers |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RetroShare instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| retroshare.bandwidth | Upload, Download | kilobits/s |\n| retroshare.peers | All friends, Connected friends | peers |\n| retroshare.dht | DHT nodes estimated, RS nodes estimated | peers |\n\n", "integration_type": "collector", "id": "python.d.plugin-retroshare-RetroShare", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/retroshare/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "riakkv", "monitored_instance": {"name": "RiakKV", "link": "https://riak.com/products/riak-kv/index.html", "categories": ["data-collection.database-servers"], "icon_filename": "riak.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["database", "nosql", "big data"], "most_popular": false}, "overview": "# RiakKV\n\n## Overview\n\nThis collector monitors RiakKV metrics about throughput, latency, resources and more.'\n\n\nThis collector reads the database stats from the `/stats` endpoint.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the /stats endpoint is accessible, RiakKV instances on the local host running on port 8098 will be autodetected.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure RiakKV to enable /stats endpoint\n\nYou can follow the RiakKV configuration reference documentation for how to enable this.\n\nSource : https://docs.riak.com/riak/kv/2.2.3/configuring/reference/#client-interfaces\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/riakkv.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/riakkv.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| url | The url of the server | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic (default)\n\nA basic example configuration per job\n\n```yaml\nlocal:\nurl: 'http://localhost:8098/stats'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal:\n url: 'http://localhost:8098/stats'\n\nremote:\n url: 'http://192.0.2.1:8098/stats'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `riakkv` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin riakkv debug trace\n ```\n\n", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ riakkv_1h_kv_get_mean_latency ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.kv.latency.get | average time between reception of client GET request and subsequent response to client over the last hour |\n| [ riakkv_kv_get_slow ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.kv.latency.get | average time between reception of client GET request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour |\n| [ riakkv_1h_kv_put_mean_latency ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.kv.latency.put | average time between reception of client PUT request and subsequent response to the client over the last hour |\n| [ riakkv_kv_put_slow ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.kv.latency.put | average time between reception of client PUT request and subsequent response to the client over the last 3 minutes, compared to the average over the last hour |\n| [ riakkv_vm_high_process_count ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.vm | number of processes running in the Erlang VM |\n| [ riakkv_list_keys_active ](https://github.com/netdata/netdata/blob/master/health/health.d/riakkv.conf) | riak.core.fsm_active | number of currently running list keys finite state machines |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per RiakKV instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| riak.kv.throughput | gets, puts | operations/s |\n| riak.dt.vnode_updates | counters, sets, maps | operations/s |\n| riak.search | queries | queries/s |\n| riak.search.documents | indexed | documents/s |\n| riak.consistent.operations | gets, puts | operations/s |\n| riak.kv.latency.get | mean, median, 95, 99, 100 | ms |\n| riak.kv.latency.put | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.counter_merge | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.set_merge | mean, median, 95, 99, 100 | ms |\n| riak.dt.latency.map_merge | mean, median, 95, 99, 100 | ms |\n| riak.search.latency.query | median, min, 95, 99, 999, max | ms |\n| riak.search.latency.index | median, min, 95, 99, 999, max | ms |\n| riak.consistent.latency.get | mean, median, 95, 99, 100 | ms |\n| riak.consistent.latency.put | mean, median, 95, 99, 100 | ms |\n| riak.vm | processes | total |\n| riak.vm.memory.processes | allocated, used | MB |\n| riak.kv.siblings_encountered.get | mean, median, 95, 99, 100 | siblings |\n| riak.kv.objsize.get | mean, median, 95, 99, 100 | KB |\n| riak.search.vnodeq_size | mean, median, 95, 99, 100 | messages |\n| riak.search.index | errors | errors |\n| riak.core.protobuf_connections | active | connections |\n| riak.core.repairs | read | repairs |\n| riak.core.fsm_active | get, put, secondary index, list keys | fsms |\n| riak.core.fsm_rejected | get, put | fsms |\n| riak.search.index | bad_entry, extract_fail | writes |\n\n", "integration_type": "collector", "id": "python.d.plugin-riakkv-RiakKV", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/riakkv/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "samba", "monitored_instance": {"name": "Samba", "link": "https://www.samba.org/samba/", "categories": ["data-collection.storage-mount-points-and-filesystems"], "icon_filename": "samba.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["samba", "file sharing"], "most_popular": false}, "overview": "# Samba\n\n## Overview\n\nThis collector monitors the performance metrics of Samba file sharing.\n\nIt is using the `smbstatus` command-line tool.\n\nExecuted commands:\n\n- `sudo -n smbstatus -P`\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n`smbstatus` is used, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nAfter all the permissions are satisfied, the `smbstatus -P` binary is executed.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Permissions and programs\n\nTo run the collector you need:\n\n- `smbstatus` program\n- `sudo` program\n- `smbd` must be compiled with profiling enabled\n- `smbd` must be started either with the `-P 1` option or inside `smb.conf` using `smbd profiling level`\n\nThe module uses `smbstatus`, which can only be executed by `root`. It uses `sudo` and assumes that it is configured such that the `netdata` user can execute `smbstatus` as root without a password.\n\n- add to your `/etc/sudoers` file:\n\n `which smbstatus` shows the full path to the binary.\n\n ```bash\n netdata ALL=(root) NOPASSWD: /path/to/smbstatus\n ```\n\n- Reset Netdata's systemd unit [CapabilityBoundingSet](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Capabilities) (Linux distributions with systemd)\n\n The default CapabilityBoundingSet doesn't allow using `sudo`, and is quite strict in general. Resetting is not optimal, but a next-best solution given the inability to execute `smbstatus` using `sudo`.\n\n\n As the `root` user, do the following:\n\n ```cmd\n mkdir /etc/systemd/system/netdata.service.d\n echo -e '[Service]\\nCapabilityBoundingSet=~' | tee /etc/systemd/system/netdata.service.d/unset-capability-bounding-set.conf\n systemctl daemon-reload\n systemctl restart netdata.service\n ```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/samba.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/samba.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n{% details summary=\"Config\" %}\n```yaml\nmy_job_name:\n name: my_name\n update_every: 1\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `samba` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin samba debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Samba instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| syscall.rw | sendfile, recvfile | KiB/s |\n| smb2.rw | readout, writein, readin, writeout | KiB/s |\n| smb2.create_close | create, close | operations/s |\n| smb2.get_set_info | getinfo, setinfo | operations/s |\n| smb2.find | find | operations/s |\n| smb2.notify | notify | operations/s |\n| smb2.sm_counters | tcon, negprot, tdis, cancel, logoff, flush, lock, keepalive, break, sessetup | count |\n\n", "integration_type": "collector", "id": "python.d.plugin-samba-Samba", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/samba/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "sensors", "monitored_instance": {"name": "Linux Sensors (lm-sensors)", "link": "https://hwmon.wiki.kernel.org/lm_sensors", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "microchip.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["sensors", "temperature", "voltage", "current", "power", "fan", "energy", "humidity"], "most_popular": false}, "overview": "# Linux Sensors (lm-sensors)\n\n## Overview\n\nExamine Linux Sensors metrics with Netdata for insights into hardware health and performance.\n\nEnhance your system's reliability with real-time hardware health insights.\n\n\nReads system sensors information (temperature, voltage, electric current, power, etc.) via [lm-sensors](https://hwmon.wiki.kernel.org/lm_sensors).\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe following type of sensors are auto-detected:\n- temperature - fan - voltage - current - power - energy - humidity\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/sensors.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/sensors.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| types | The types of sensors to collect. | | True |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n\n{% /details %}\n#### Examples\n\n##### Default\n\nDefault configuration.\n\n```yaml\ntypes:\n - temperature\n - fan\n - voltage\n - current\n - power\n - energy\n - humidity\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `sensors` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin sensors debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per chip\n\nMetrics related to chips. Each chip provides a set of the following metrics, each having the chip name in the metric name as reported by `sensors -u`.\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| sensors.temperature | a dimension per sensor | Celsius |\n| sensors.voltage | a dimension per sensor | Volts |\n| sensors.current | a dimension per sensor | Ampere |\n| sensors.power | a dimension per sensor | Watt |\n| sensors.fan | a dimension per sensor | Rotations/min |\n| sensors.energy | a dimension per sensor | Joule |\n| sensors.humidity | a dimension per sensor | Percent |\n\n", "integration_type": "collector", "id": "python.d.plugin-sensors-Linux_Sensors_(lm-sensors)", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/sensors/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "smartd_log", "monitored_instance": {"name": "S.M.A.R.T.", "link": "https://linux.die.net/man/8/smartd", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "smart.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["smart", "S.M.A.R.T.", "SCSI devices", "ATA devices"], "most_popular": false}, "overview": "# S.M.A.R.T.\n\n## Overview\n\nThis collector monitors HDD/SSD S.M.A.R.T. metrics about drive health and performance.\n\n\nIt reads `smartd` log files to collect the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nUpon satisfying the prerequisites, the collector will auto-detect metrics if written in either `/var/log/smartd/` or `/var/lib/smartmontools/`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure `smartd` to write attribute information to files.\n\n`smartd` must be running with `-A` option to write `smartd` attribute information to files.\n\nFor this you need to set `smartd_opts` (or `SMARTD_ARGS`, check _smartd.service_ content) in `/etc/default/smartmontools`:\n\n```\n# dump smartd attrs info every 600 seconds\nsmartd_opts=\"-A /var/log/smartd/ -i 600\"\n```\n\nYou may need to create the smartd directory before smartd will write to it: \n\n```sh\nmkdir -p /var/log/smartd\n```\n\nOtherwise, all the smartd `.csv` files may get written to `/var/lib/smartmontools` (default location). See also for more info on the `-A --attributelog=PREFIX` command.\n\n`smartd` appends logs at every run. It's strongly recommended to use `logrotate` for smartd files.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/smartd_log.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/smartd_log.conf\n```\n#### Options\n\nThis particular collector does not need further configuration to work if permissions are satisfied, but you can always customize it's data collection behavior.\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| log_path | path to smartd log files. | | True |\n| exclude_disks | Space-separated patterns. If the pattern is in the drive name, the module will not collect data for it. | | False |\n| age | Time in minutes since the last dump to file. | | False |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\ncustom:\n name: smartd_log\n log_path: '/var/log/smartd/'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `smartd_log` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin smartd_log debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nThe metrics listed below are split in terms of availability on device type, SCSI or ATA.\n\n### Per S.M.A.R.T. instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit | SCSI | ATA |\n|:------|:----------|:----|:---:|:---:|\n| smartd_log.read_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.seek_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.soft_read_error_rate | a dimension per device | errors | | \u2022 |\n| smartd_log.write_error_rate | a dimension per device | value | | \u2022 |\n| smartd_log.read_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.read_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.write_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.write_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.verify_total_err_corrected | a dimension per device | errors | \u2022 | |\n| smartd_log.verify_total_unc_errors | a dimension per device | errors | \u2022 | |\n| smartd_log.sata_interface_downshift | a dimension per device | events | | \u2022 |\n| smartd_log.udma_crc_error_count | a dimension per device | errors | | \u2022 |\n| smartd_log.throughput_performance | a dimension per device | value | | \u2022 |\n| smartd_log.seek_time_performance | a dimension per device | value | | \u2022 |\n| smartd_log.start_stop_count | a dimension per device | events | | \u2022 |\n| smartd_log.power_on_hours_count | a dimension per device | hours | | \u2022 |\n| smartd_log.power_cycle_count | a dimension per device | events | | \u2022 |\n| smartd_log.unexpected_power_loss | a dimension per device | events | | \u2022 |\n| smartd_log.spin_up_time | a dimension per device | ms | | \u2022 |\n| smartd_log.spin_up_retries | a dimension per device | retries | | \u2022 |\n| smartd_log.calibration_retries | a dimension per device | retries | | \u2022 |\n| smartd_log.airflow_temperature_celsius | a dimension per device | celsius | | \u2022 |\n| smartd_log.temperature_celsius | a dimension per device | celsius | \u2022 | \u2022 |\n| smartd_log.reallocated_sectors_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.reserved_block_count | a dimension per device | percentage | | \u2022 |\n| smartd_log.program_fail_count | a dimension per device | errors | | \u2022 |\n| smartd_log.erase_fail_count | a dimension per device | failures | | \u2022 |\n| smartd_log.wear_leveller_worst_case_erase_count | a dimension per device | erases | | \u2022 |\n| smartd_log.unused_reserved_nand_blocks | a dimension per device | blocks | | \u2022 |\n| smartd_log.reallocation_event_count | a dimension per device | events | | \u2022 |\n| smartd_log.current_pending_sector_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.offline_uncorrectable_sector_count | a dimension per device | sectors | | \u2022 |\n| smartd_log.percent_lifetime_used | a dimension per device | percentage | | \u2022 |\n| smartd_log.media_wearout_indicator | a dimension per device | percentage | | \u2022 |\n| smartd_log.nand_writes_1gib | a dimension per device | GiB | | \u2022 |\n\n", "integration_type": "collector", "id": "python.d.plugin-smartd_log-S.M.A.R.T.", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/smartd_log/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "spigotmc", "monitored_instance": {"name": "SpigotMC", "link": "", "categories": ["data-collection.gaming"], "icon_filename": "spigot.jfif"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["minecraft server", "spigotmc server", "spigot"], "most_popular": false}, "overview": "# SpigotMC\n\n## Overview\n\nThis collector monitors SpigotMC server performance, in the form of ticks per second average, memory utilization, and active users.\n\n\nIt sends the `tps`, `list` and `online` commands to the Server, and gathers the metrics from the responses.\n\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will attempt to connect to a Spigot server running on the local host on port `25575`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable the Remote Console Protocol\n\nUnder your SpigotMC server's `server.properties` configuration file, you should set `enable-rcon` to `true`.\n\nThis will allow the Server to listen and respond to queries over the rcon protocol.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/spigotmc.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/spigotmc.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n| host | The host's IP to connect to. | | True |\n| port | The port the remote console is listening on. | | True |\n| password | Remote console password if any. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nlocal:\n name: local_server\n url: 127.0.0.1\n port: 25575\n\n```\n##### Basic Authentication\n\nAn example using basic password for authentication with the remote console.\n\n{% details summary=\"Config\" %}\n```yaml\nlocal:\n name: local_server_pass\n url: 127.0.0.1\n port: 25575\n password: 'foobar'\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_server:\n name : my_local_server\n url : 127.0.0.1\n port: 25575\n\nremote_server:\n name : another_remote_server\n url : 192.0.2.1\n port: 25575\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `spigotmc` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin spigotmc debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per SpigotMC instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| spigotmc.tps | 1 Minute Average, 5 Minute Average, 15 Minute Average | ticks |\n| spigotmc.users | Users | users |\n| spigotmc.mem | used, allocated, max | MiB |\n\n", "integration_type": "collector", "id": "python.d.plugin-spigotmc-SpigotMC", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/spigotmc/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "squid", "monitored_instance": {"name": "Squid", "link": "http://www.squid-cache.org/", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "squid.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["squid", "web delivery", "squid caching proxy"], "most_popular": false}, "overview": "# Squid\n\n## Overview\n\nThis collector monitors statistics about the Squid Clients and Servers, like bandwidth and requests.\n\n\nIt collects metrics from the endpoint where Squid exposes its `counters` data.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, this collector will try to autodetect where Squid presents its `counters` data, by trying various configurations.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Configure Squid's Cache Manager\n\nTake a look at [Squid's official documentation](https://wiki.squid-cache.org/Features/CacheManager/Index#controlling-access-to-the-cache-manager) on how to configure access to the Cache Manager.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/squid.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/squid.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works.\n | | False |\n| host | The host to connect to. | | True |\n| port | The port to connect to. | | True |\n| request | The URL to request from Squid. | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n```yaml\nexample_job_name:\n name: 'local'\n host: 'localhost'\n port: 3128\n request: 'cache_object://localhost:3128/counters'\n\n```\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_job:\n name: 'local'\n host: '127.0.0.1'\n port: 3128\n request: 'cache_object://127.0.0.1:3128/counters'\n\nremote_job:\n name: 'remote'\n host: '192.0.2.1'\n port: 3128\n request: 'cache_object://192.0.2.1:3128/counters'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `squid` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin squid debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Squid instance\n\nThese metrics refer to each monitored Squid instance.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| squid.clients_net | in, out, hits | kilobits/s |\n| squid.clients_requests | requests, hits, errors | requests/s |\n| squid.servers_net | in, out | kilobits/s |\n| squid.servers_requests | requests, errors | requests/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-squid-Squid", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/squid/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "tomcat", "monitored_instance": {"name": "Tomcat", "link": "https://tomcat.apache.org/", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "tomcat.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["apache", "tomcat", "webserver", "websocket", "jakarta", "javaEE"], "most_popular": false}, "overview": "# Tomcat\n\n## Overview\n\nThis collector monitors Tomcat metrics about bandwidth, processing time, threads and more.\n\n\nIt parses the information provided by the http endpoint of the `/manager/status` in XML format\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nYou need to provide the username and the password, to access the webserver's status page. Create a seperate user with read only rights for this particular endpoint\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf the Netdata Agent and the Tomcat webserver are in the same host, without configuration, module attempts to connect to http://localhost:8080/manager/status?XML=true, without any credentials. So it will probably fail.\n\n#### Limits\n\nThis module is not supporting SSL communication. If you want a Netdata Agent to monitor a Tomcat deployment, you shouldnt try to monitor it via public network (public internet). Credentials are passed by Netdata in an unsecure port\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Create a read-only `netdata` user, to monitor the `/status` endpoint.\n\nYou will need this configuring the collector\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/tomcat.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/tomcat.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.Additionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options per job\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| url | The URL of the Tomcat server's status endpoint. Always add the suffix ?XML=true. | | True |\n| user | A valid user with read permission to access the /manager/status endpoint of the server. Required if the endpoint is password protected | | False |\n| pass | A valid password for the user in question. Required if the endpoint is password protected | | False |\n| connector_name | The connector component that communicates with a web connector via the AJP protocol, e.g ajp-bio-8009 | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration\n\n```yaml\nlocalhost:\n name : 'local'\n url : 'http://localhost:8080/manager/status?XML=true'\n\n```\n##### Using an IPv4 endpoint\n\nA typical configuration using an IPv4 endpoint\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_ipv4:\n name : 'local'\n url : 'http://127.0.0.1:8080/manager/status?XML=true'\n\n```\n{% /details %}\n##### Using an IPv6 endpoint\n\nA typical configuration using an IPv6 endpoint\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_ipv6:\n name : 'local'\n url : 'http://[::1]:8080/manager/status?XML=true'\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tomcat` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin tomcat debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tomcat instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tomcat.accesses | accesses, errors | requests/s |\n| tomcat.bandwidth | sent, received | KiB/s |\n| tomcat.processing_time | processing time | seconds |\n| tomcat.threads | current, busy | current threads |\n| tomcat.jvm | free, eden, survivor, tenured, code cache, compressed, metaspace | MiB |\n| tomcat.jvm_eden | used, committed, max | MiB |\n| tomcat.jvm_survivor | used, committed, max | MiB |\n| tomcat.jvm_tenured | used, committed, max | MiB |\n\n", "integration_type": "collector", "id": "python.d.plugin-tomcat-Tomcat", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/tomcat/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "tor", "monitored_instance": {"name": "Tor", "link": "https://www.torproject.org/", "categories": ["data-collection.vpns"], "icon_filename": "tor.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["tor", "traffic", "vpn"], "most_popular": false}, "overview": "# Tor\n\n## Overview\n\nThis collector monitors Tor bandwidth traffic .\n\nIt connects to the Tor control port to collect traffic statistics.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nIf no configuration is provided the collector will try to connect to 127.0.0.1:9051 to detect a running tor instance.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required Tor configuration\n\nAdd to /etc/tor/torrc:\n\nControlPort 9051\n\nFor more options please read the manual.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/tor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/tor.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| control_addr | Tor control IP address | | False |\n| control_port | Tor control port. Can be either a tcp port, or a path to a socket file. | | False |\n| password | Tor control password | | False |\n\n{% /details %}\n#### Examples\n\n##### Local TCP\n\nA basic TCP configuration. `local_addr` is ommited and will default to `127.0.0.1`\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_tcp:\n name: 'local'\n control_port: 9051\n password: # if required\n\n```\n{% /details %}\n##### Local socket\n\nA basic local socket configuration\n\n{% details summary=\"Config\" %}\n```yaml\nlocal_socket:\n name: 'local'\n control_port: '/var/run/tor/control'\n password: # if required\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `tor` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin tor debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Tor instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tor.traffic | read, write | KiB/s |\n\n", "integration_type": "collector", "id": "python.d.plugin-tor-Tor", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/tor/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "uwsgi", "monitored_instance": {"name": "uWSGI", "link": "https://github.com/unbit/uwsgi/tree/2.0.21", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "uwsgi.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["application server", "python", "web applications"], "most_popular": false}, "overview": "# uWSGI\n\n## Overview\n\nThis collector monitors uWSGI metrics about requests, workers, memory and more.\n\nIt collects every metric exposed from the stats server of uWSGI, either from the `stats.socket` or from the web server's TCP/IP socket.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis collector will auto-detect uWSGI instances deployed on the local host, running on port 1717, or exposing stats on socket `tmp/stats.socket`.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Enable the uWSGI Stats server\n\nMake sure that you uWSGI exposes it's metrics via a Stats server.\n\nSource: https://uwsgi-docs.readthedocs.io/en/latest/StatsServer.html\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/uwsgi.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/uwsgi.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | The JOB's name as it will appear at the dashboard (by default is the job_name) | | False |\n| socket | The 'path/to/uwsgistats.sock' | | False |\n| host | The host to connect to | | False |\n| port | The port to connect to | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic (default out-of-the-box)\n\nA basic example configuration, one job will run at a time. Autodetect mechanism uses it by default. As all JOBs have the same name, only one can run at a time.\n\n{% details summary=\"Config\" %}\n```yaml\nsocket:\n name : 'local'\n socket : '/tmp/stats.socket'\n\nlocalhost:\n name : 'local'\n host : 'localhost'\n port : 1717\n\nlocalipv4:\n name : 'local'\n host : '127.0.0.1'\n port : 1717\n\nlocalipv6:\n name : 'local'\n host : '::1'\n port : 1717\n\n```\n{% /details %}\n##### Multi-instance\n\n> **Note**: When you define multiple jobs, their names must be unique.\n\nCollecting metrics from local and remote instances.\n\n\n{% details summary=\"Config\" %}\n```yaml\nlocal:\n name : 'local'\n host : 'localhost'\n port : 1717\n\nremote:\n name : 'remote'\n host : '192.0.2.1'\n port : 1717\n\n```\n{% /details %}\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `uwsgi` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin uwsgi debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per uWSGI instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| uwsgi.requests | a dimension per worker | requests/s |\n| uwsgi.tx | a dimension per worker | KiB/s |\n| uwsgi.avg_rt | a dimension per worker | milliseconds |\n| uwsgi.memory_rss | a dimension per worker | MiB |\n| uwsgi.memory_vsz | a dimension per worker | MiB |\n| uwsgi.exceptions | exceptions | exceptions |\n| uwsgi.harakiris | harakiris | harakiris |\n| uwsgi.respawns | respawns | respawns |\n\n", "integration_type": "collector", "id": "python.d.plugin-uwsgi-uWSGI", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/uwsgi/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "varnish", "monitored_instance": {"name": "Varnish", "link": "https://varnish-cache.org/", "categories": ["data-collection.web-servers-and-web-proxies"], "icon_filename": "varnish.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["varnish", "varnishstat", "varnishd", "cache", "web server", "web cache"], "most_popular": false}, "overview": "# Varnish\n\n## Overview\n\nThis collector monitors Varnish metrics about HTTP accelerator global, Backends (VBE) and Storages (SMF, SMA, MSE) statistics.\n\nNote that both, Varnish-Cache (free and open source) and Varnish-Plus (Commercial/Enterprise version), are supported.\n\n\nIt uses the `varnishstat` tool in order to collect the metrics.\n\n\nThis collector is supported on all platforms.\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\n`netdata` user must be a member of the `varnish` group.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nBy default, if the permissions are satisfied, the `varnishstat` tool will be executed on the host.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Provide the necessary permissions\n\nIn order for the collector to work, you need to add the `netdata` user to the `varnish` user group, so that it can execute the `varnishstat` tool:\n\n```\nusermod -aG varnish netdata\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/varnish.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/varnish.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| instance_name | the name of the varnishd instance to get logs from. If not specified, the host name is used. | | True |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nAn example configuration.\n\n```yaml\njob_name:\n instance_name: ''\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `varnish` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin varnish debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Varnish instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.session_connection | accepted, dropped | connections/s |\n| varnish.client_requests | received | requests/s |\n| varnish.all_time_hit_rate | hit, miss, hitpass | percentage |\n| varnish.current_poll_hit_rate | hit, miss, hitpass | percentage |\n| varnish.cached_objects_expired | objects | expired/s |\n| varnish.cached_objects_nuked | objects | nuked/s |\n| varnish.threads_total | None | number |\n| varnish.threads_statistics | created, failed, limited | threads/s |\n| varnish.threads_queue_len | in queue | requests |\n| varnish.backend_connections | successful, unhealthy, reused, closed, recycled, failed | connections/s |\n| varnish.backend_requests | sent | requests/s |\n| varnish.esi_statistics | errors, warnings | problems/s |\n| varnish.memory_usage | free, allocated | MiB |\n| varnish.uptime | uptime | seconds |\n\n### Per Backend\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.backend | header, body | kilobits/s |\n\n### Per Storage\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| varnish.storage_usage | free, allocated | KiB |\n| varnish.storage_alloc_objs | allocated | objects |\n\n", "integration_type": "collector", "id": "python.d.plugin-varnish-Varnish", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/varnish/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "w1sensor", "monitored_instance": {"name": "1-Wire Sensors", "link": "https://www.analog.com/en/product-category/1wire-temperature-sensors.html", "categories": ["data-collection.hardware-devices-and-sensors"], "icon_filename": "1-wire.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["temperature", "sensor", "1-wire"], "most_popular": false}, "overview": "# 1-Wire Sensors\n\n## Overview\n\nMonitor 1-Wire Sensors metrics with Netdata for optimal environmental conditions monitoring. Enhance your environmental monitoring with real-time insights and alerts.\n\nThe collector uses the wire, w1_gpio, and w1_therm kernel modules. Currently temperature sensors are supported and automatically detected.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThe collector will try to auto detect available 1-Wire devices.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Required Linux kernel modules\n\nMake sure `wire`, `w1_gpio`, and `w1_therm` kernel modules are loaded.\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/w1sensor.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/w1sensor.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n| name | Job name. This value will overwrite the `job_name` value. JOBS with the same name are mutually exclusive. Only one of them will be allowed running at any time. This allows autodetection to try several alternatives and pick the one that works. | | False |\n| name_<1-Wire id> | This allows associating a human readable name with a sensor's 1-Wire identifier. | | False |\n\n{% /details %}\n#### Examples\n\n##### Provide human readable names\n\nAssociate two 1-Wire identifiers with human readable names.\n\n```yaml\nsensors:\n name_00000022276e: 'Machine room'\n name_00000022298f: 'Rack 12'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `w1sensor` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin w1sensor debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per 1-Wire Sensors instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| w1sensor.temp | a dimension per sensor | Celsius |\n\n", "integration_type": "collector", "id": "python.d.plugin-w1sensor-1-Wire_Sensors", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/w1sensor/metadata.yaml"}, {"meta": {"plugin_name": "python.d.plugin", "module_name": "zscores", "monitored_instance": {"name": "python.d zscores", "link": "https://en.wikipedia.org/wiki/Standard_score", "categories": ["data-collection.other"], "icon_filename": ""}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["zscore", "z-score", "standard score", "standard deviation", "anomaly detection", "statistical anomaly detection"], "most_popular": false}, "overview": "# python.d zscores\n\n## Overview\n\nBy using smoothed, rolling [Z-Scores](https://en.wikipedia.org/wiki/Standard_score) for selected metrics or charts you can narrow down your focus and shorten root cause analysis.\n\n\nThis collector uses the [Netdata rest api](https://github.com/netdata/netdata/blob/master/web/api/README.md) to get the `mean` and `stddev`\nfor each dimension on specified charts over a time range (defined by `train_secs` and `offset_secs`).\n\nFor each dimension it will calculate a Z-Score as `z = (x - mean) / stddev` (clipped at `z_clip`). Scores are then smoothed over\ntime (`z_smooth_n`) and, if `mode: 'per_chart'`, aggregated across dimensions to a smoothed, rolling chart level Z-Score at each time step.\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Python Requirements\n\nThis collector will only work with Python 3 and requires the below packages be installed.\n\n```bash\n# become netdata user\nsudo su -s /bin/bash netdata\n# install required packages\npip3 install numpy pandas requests netdata-pandas==0.0.38\n```\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `python.d/zscores.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config python.d/zscores.conf\n```\n#### Options\n\nThere are 2 sections:\n\n* Global variables\n* One or more JOBS that can define multiple different instances to monitor.\n\nThe following options can be defined globally: priority, penalty, autodetection_retry, update_every, but can also be defined per JOB to override the global values.\n\nAdditionally, the following collapsed table contains all the options that can be configured inside a JOB definition.\n\nEvery configuration JOB starts with a `job_name` value which will appear in the dashboard, unless a `name` parameter is specified.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| charts_regex | what charts to pull data for - A regex like `system\\..*|` or `system\\..*|apps.cpu|apps.mem` etc. | | True |\n| train_secs | length of time (in seconds) to base calculations off for mean and stddev. | | True |\n| offset_secs | offset (in seconds) preceding latest data to ignore when calculating mean and stddev. | | True |\n| train_every_n | recalculate the mean and stddev every n steps of the collector. | | True |\n| z_smooth_n | smooth the z score (to reduce sensitivity to spikes) by averaging it over last n values. | | True |\n| z_clip | cap absolute value of zscore (before smoothing) for better stability. | | True |\n| z_abs | set z_abs: 'true' to make all zscores be absolute values only. | | True |\n| burn_in | burn in period in which to initially calculate mean and stddev on every step. | | True |\n| mode | mode can be to get a zscore 'per_dim' or 'per_chart'. | | True |\n| per_chart_agg | per_chart_agg is how you aggregate from dimension to chart when mode='per_chart'. | | True |\n| update_every | Sets the default data collection frequency. | | False |\n| priority | Controls the order of charts at the netdata dashboard. | | False |\n| autodetection_retry | Sets the job re-check interval in seconds. | | False |\n| penalty | Indicates whether to apply penalty to update_every in case of failures. | | False |\n\n{% /details %}\n#### Examples\n\n##### Default\n\nDefault configuration.\n\n```yaml\nlocal:\n name: 'local'\n host: '127.0.0.1:19999'\n charts_regex: 'system\\..*'\n charts_to_exclude: 'system.uptime'\n train_secs: 14400\n offset_secs: 300\n train_every_n: 900\n z_smooth_n: 15\n z_clip: 10\n z_abs: 'true'\n burn_in: 2\n mode: 'per_chart'\n per_chart_agg: 'mean'\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Debug Mode\n\nTo troubleshoot issues with the `zscores` collector, run the `python.d.plugin` with the debug option enabled. The output\nshould give you clues as to why the collector isn't working.\n\n- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on\n your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.\n\n ```bash\n cd /usr/libexec/netdata/plugins.d/\n ```\n\n- Switch to the `netdata` user.\n\n ```bash\n sudo -u netdata -s\n ```\n\n- Run the `python.d.plugin` to debug the collector:\n\n ```bash\n ./python.d.plugin zscores debug trace\n ```\n\n", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per python.d zscores instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| zscores.z | a dimension per chart or dimension | z |\n| zscores.3stddev | a dimension per chart or dimension | count |\n\n", "integration_type": "collector", "id": "python.d.plugin-zscores-python.d_zscores", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/zscores/metadata.yaml"}, {"meta": {"plugin_name": "slabinfo.plugin", "module_name": "slabinfo.plugin", "monitored_instance": {"name": "Linux kernel SLAB allocator statistics", "link": "https://kernel.org/", "categories": ["data-collection.linux-systems.kernel-metrics"], "icon_filename": "linuxserver.svg"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": ["linux kernel", "slab", "slub", "slob", "slabinfo"], "most_popular": false}, "overview": "# Linux kernel SLAB allocator statistics\n\n## Overview\n\nCollects metrics on kernel SLAB cache utilization to monitor the low-level performance impact of workloads in the kernel.\n\n\nThe plugin parses `/proc/slabinfo`\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector only supports collecting metrics from a single instance of this integration.\n\nThis integration requires read access to `/proc/slabinfo`, which is accessible only to the root user by default. Netdata uses Linux Capabilities to give the plugin access to this file. `CAP_DAC_READ_SEARCH` is added automatically during installation. This capability allows bypassing file read permission checks and directory read and execute permission checks. If file capabilities are not usable, then the plugin is instead installed with the SUID bit set in permissions sVko that it runs as root.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nDue to the large number of metrics generated by this integration, it is disabled by default and must be manually enabled inside `/etc/netdata/netdata.conf`\n\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugins]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"The main configuration file.\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| Enable plugin | As described above plugin is disabled by default, this option is used to enable plugin. | | True |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\nSLAB cache utilization metrics for the whole system.\n\n### Per Linux kernel SLAB allocator statistics instance\n\n\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| mem.slabmemory | a dimension per cache | B |\n| mem.slabfilling | a dimension per cache | % |\n| mem.slabwaste | a dimension per cache | B |\n\n", "integration_type": "collector", "id": "slabinfo.plugin-slabinfo.plugin-Linux_kernel_SLAB_allocator_statistics", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/slabinfo.plugin/metadata.yaml"}, {"meta": {"plugin_name": "tc.plugin", "module_name": "tc.plugin", "monitored_instance": {"name": "tc QoS classes", "link": "https://wiki.linuxfoundation.org/networking/iproute2", "categories": ["data-collection.linux-systems.network-metrics"], "icon_filename": "netdata.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# tc QoS classes\n\n## Overview\n\nExamine tc metrics to gain insights into Linux traffic control operations. Study packet flow rates, queue lengths, and drop rates to optimize network traffic flow.\n\nThe plugin uses `tc` command to collect information about Traffic control.\n\nThis collector is only supported on the following platforms:\n\n- Linux\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs to access command `tc` to get the necessary metrics. To achieve this netdata modifies permission of file `/usr/libexec/netdata/plugins.d/tc-qos-helper.sh`.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:tc]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config option\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| script to run to get tc values | Path to script `tc-qos-helper.sh` | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic example configuration.\n\n```yaml\n[plugin:tc]\n script to run to get tc values = /usr/libexec/netdata/plugins.d/tc-qos-helper.sh\n\n```\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per network device direction\n\nMetrics related to QoS network device directions. Each direction (in/out) produces its own set of the following metrics.\n\nLabels:\n\n| Label | Description |\n|:-----------|:----------------|\n| device | The network interface. |\n| device_name | The network interface name |\n| group | The device family |\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| tc.qos | a dimension per class | kilobits/s |\n| tc.qos_packets | a dimension per class | packets/s |\n| tc.qos_dropped | a dimension per class | packets/s |\n| tc.qos_tokens | a dimension per class | tokens |\n| tc.qos_ctokens | a dimension per class | ctokens |\n\n", "integration_type": "collector", "id": "tc.plugin-tc.plugin-tc_QoS_classes", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/tc.plugin/metadata.yaml"}, {"meta": {"plugin_name": "timex.plugin", "module_name": "timex.plugin", "monitored_instance": {"name": "Timex", "link": "", "categories": ["data-collection.system-clock-and-ntp"], "icon_filename": "syslog.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# Timex\n\n## Overview\n\nExamine Timex metrics to gain insights into system clock operations. Study time sync status, clock drift, and adjustments to ensure accurate system timekeeping.\n\nIt uses system call adjtimex on Linux and ntp_adjtime on FreeBSD or Mac to monitor the system kernel clock synchronization state.\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis integration doesn't support auto-detection.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\nNo action required.\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:timex]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\nAt least one option ('clock synchronization state', 'time offset') needs to be enabled for this collector to run.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n| clock synchronization state | Make chart showing system clock synchronization state. | | True |\n| time offset | Make chart showing computed time offset between local system and reference clock | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic\n\nA basic configuration example.\n\n{% details summary=\"Config\" %}\n```yaml\n[plugin:timex]\n update every = 1\n clock synchronization state = yes\n time offset = yes\n\n```\n{% /details %}\n", "troubleshooting": "", "alerts": "## Alerts\n\n\nThe following alerts are available:\n\n| Alert name | On metric | Description |\n|:------------|:----------|:------------|\n| [ system_clock_sync_state ](https://github.com/netdata/netdata/blob/master/health/health.d/timex.conf) | system.clock_sync_state | when set to 0, the system kernel believes the system clock is not properly synchronized to a reliable server |\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Timex instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| system.clock_sync_state | state | state |\n| system.clock_status | unsync, clockerr | status |\n| system.clock_sync_offset | offset | milliseconds |\n\n", "integration_type": "collector", "id": "timex.plugin-timex.plugin-Timex", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/timex.plugin/metadata.yaml"}, {"meta": {"plugin_name": "xenstat.plugin", "module_name": "xenstat.plugin", "monitored_instance": {"name": "Xen/XCP-ng", "link": "https://xenproject.org/", "categories": ["data-collection.containers-and-vms"], "icon_filename": "xen.png"}, "related_resources": {"integrations": {"list": []}}, "info_provided_to_referring_integrations": {"description": ""}, "keywords": [], "most_popular": false}, "overview": "# Xen/XCP-ng\n\n## Overview\n\nThis collector monitors XenServer and XCP-ng host and domains statistics.\n\n\n\nThis collector is supported on all platforms.\n\nThis collector supports collecting metrics from multiple instances of this integration, including remote instances.\n\nThe plugin needs setuid.\n\n### Default Behavior\n\n#### Auto-Detection\n\nThis plugin requires the `xen-dom0-libs-devel` and `yajl-devel` libraries to be installed.\n\n#### Limits\n\nThe default configuration for this integration does not impose any limits on data collection.\n\n#### Performance Impact\n\nThe default configuration for this integration is not expected to impose a significant performance impact on the system.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### Libraries\n\n1. Install `xen-dom0-libs-devel` and `yajl-devel` using the package manager of your system.\n\n Note: On Cent-OS systems you will need `centos-release-xen` repository and the required package for xen is `xen-devel`\n\n2. Re-install Netdata from source. The installer will detect that the required libraries are now available and will also build xenstat.plugin.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `netdata.conf`.\nConfiguration for this specific integration is located in the `[plugin:xenstat]` section within that file.\n\nThe file format is a modified INI syntax. The general structure is:\n\n```toml\n[section1]\n option 1 = some value\n option 2 = some other value\n\n[section2]\n option 3 = some third value\n```\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config netdata.conf\n```\n#### Options\n\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| update every | Data collection frequency. | | False |\n\n{% /details %}\n#### Examples\nThere are no configuration examples.\n\n", "troubleshooting": "", "alerts": "## Alerts\n\nThere are no alerts configured by default for this integration.\n", "metrics": "## Metrics\n\nMetrics grouped by *scope*.\n\nThe scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.\n\n\n\n### Per Xen/XCP-ng instance\n\nThese metrics refer to the entire monitored application.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xenstat.mem | free, used | MiB |\n| xenstat.domains | domains | domains |\n| xenstat.cpus | cpus | cpus |\n| xenstat.cpu_freq | frequency | MHz |\n\n### Per xendomain\n\nMetrics related to Xen domains. Each domain provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.states | running, blocked, paused, shutdown, crashed, dying | boolean |\n| xendomain.cpu | used | percentage |\n| xendomain.mem | maximum, current | MiB |\n| xendomain.vcpu | a dimension per vcpu | percentage |\n\n### Per xendomain vbd\n\nMetrics related to Xen domain Virtual Block Device. Each VBD provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.oo_req_vbd | requests | requests/s |\n| xendomain.requests_vbd | read, write | requests/s |\n| xendomain.sectors_vbd | read, write | sectors/s |\n\n### Per xendomain network\n\nMetrics related to Xen domain network interfaces. Each network interface provides its own set of the following metrics.\n\nThis scope has no labels.\n\nMetrics:\n\n| Metric | Dimensions | Unit |\n|:------|:----------|:----|\n| xendomain.bytes_network | received, sent | kilobits/s |\n| xendomain.packets_network | received, sent | packets/s |\n| xendomain.errors_network | received, sent | errors/s |\n| xendomain.drops_network | received, sent | drops/s |\n\n", "integration_type": "collector", "id": "xenstat.plugin-xenstat.plugin-Xen/XCP-ng", "related_resources": "", "edit_link": "https://github.com/netdata/netdata/blob/master/collectors/xenstat.plugin/metadata.yaml"}, {"id": "deploy-almalinux", "meta": {"name": "Alma Linux", "link": "https://almalinux.org/", "categories": ["deploy.operating-systems"], "icon_filename": "alma.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 9 | Core | x86_64, aarch64 | |\n| 8 | Core | x86_64, aarch64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-alpinelinux", "meta": {"name": "Alpine Linux", "link": "https://www.alpinelinux.org/", "categories": ["deploy.operating-systems"], "icon_filename": "alpine.svg"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-amazonlinux", "meta": {"name": "Amazon Linux", "link": "https://aws.amazon.com/amazon-linux-2/", "categories": ["deploy.operating-systems"], "icon_filename": "amazonlinux.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 2 | Core | x86_64, aarch64 | |\n| 2023 | Core | x86_64, aarch64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-archlinux", "meta": {"name": "Arch Linux", "link": "https://archlinux.org/", "categories": ["deploy.operating-systems"], "icon_filename": "archlinux.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| latest | Intermediate | | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-centos", "meta": {"name": "CentOS", "link": "https://www.centos.org/", "categories": ["deploy.operating-systems"], "icon_filename": "centos.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 7 | Core | x86_64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-debian", "meta": {"name": "Debian", "link": "https://www.debian.org/", "categories": ["deploy.operating-systems"], "icon_filename": "debian.svg"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 12 | Core | i386, amd64, armhf, arm64 | |\n| 11 | Core | i386, amd64, armhf, arm64 | |\n| 10 | Core | i386, amd64, armhf, arm64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-docker", "meta": {"name": "Docker", "link": "https://www.docker.com/", "categories": ["deploy.docker-kubernetes"], "icon_filename": "docker.svg"}, "most_popular": true, "keywords": ["docker", "container", "containers"], "install_description": "Install and connect new Docker containers\nFind the commands for `docker run`, `docker compose` or `Docker Swarm`. On the last two you can copy the configs, then run `docker-compose up -d` in the same directory as the `docker-compose.yml`\n\n> Netdata container requires different privileges and mounts to provide functionality similar to that provided by Netdata installed on the host. More info [here](https://learn.netdata.cloud/docs/installing/docker?_gl=1*f2xcnf*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMDIyMS40MS4xLjE2OTAzMTAzNjkuNTguMC4w#create-a-new-netdata-agent-container)\n> Netdata will use the hostname from the container in which it is run instead of that of the host system. To change the default hostname check [here](https://learn.netdata.cloud/docs/agent/packaging/docker?_gl=1*i5weve*_ga*MTI1MTUwMzU0OS4xNjg2NjM1MDA1*_ga_J69Z2JCTFB*MTY5MDMxMjM4Ny40Mi4xLjE2OTAzMTIzOTAuNTcuMC4w#change-the-default-hostname)\n", "methods": [{"method": "Docker CLI", "commands": [{"channel": "nightly", "command": "docker run -d --name=netdata \\\n--pid=host \\\n--network=host \\\n-v netdataconfig:/etc/netdata \\\n-v netdatalib:/var/lib/netdata \\\n-v netdatacache:/var/cache/netdata \\\n-v /etc/passwd:/host/etc/passwd:ro \\\n-v /etc/group:/host/etc/group:ro \\\n-v /proc:/host/proc:ro \\\n-v /sys:/host/sys:ro \\\n-v /etc/os-release:/host/etc/os-release:ro \\\n-v /var/run/docker.sock:/var/run/docker.sock:ro \\\n--restart unless-stopped \\\n--cap-add SYS_PTRACE \\\n--cap-add SYS_ADMIN \\\n--security-opt apparmor=unconfined \\\n{% if $showClaimingOptions %}\n-e NETDATA_CLAIM_TOKEN={% claim_token %} \\\n-e NETDATA_CLAIM_URL={% claim_url %} \\\n-e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \\\n{% /if %}\nnetdata/netdata:edge\n"}, {"channel": "stable", "command": "docker run -d --name=netdata \\\n--pid=host \\\n--network=host \\\n-v netdataconfig:/etc/netdata \\\n-v netdatalib:/var/lib/netdata \\\n-v netdatacache:/var/cache/netdata \\\n-v /etc/passwd:/host/etc/passwd:ro \\\n-v /etc/group:/host/etc/group:ro \\\n-v /proc:/host/proc:ro \\\n-v /sys:/host/sys:ro \\\n-v /etc/os-release:/host/etc/os-release:ro \\\n-v /var/run/docker.sock:/var/run/docker.sock:ro \\\n--restart unless-stopped \\\n--cap-add SYS_PTRACE \\\n--cap-add SYS_ADMIN \\\n--security-opt apparmor=unconfined \\\n{% if $showClaimingOptions %}\n-e NETDATA_CLAIM_TOKEN={% claim_token %} \\\n-e NETDATA_CLAIM_URL={% claim_url %} \\\n-e NETDATA_CLAIM_ROOMS={% $claim_rooms %} \\\n{% /if %}\nnetdata/netdata:stable\n"}]}, {"method": "Docker Compose", "commands": [{"channel": "nightly", "command": "version: '3'\nservices:\n netdata:\n image: netdata/netdata:edge\n container_name: netdata\n pid: host\n network_mode: host\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}, {"channel": "stable", "command": "version: '3'\nservices:\n netdata:\n image: netdata/netdata:stable\n container_name: netdata\n pid: host\n network_mode: host\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n - SYS_ADMIN\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}]}, {"method": "Docker Swarm", "commands": [{"channel": "nightly", "command": "version: '3'\nservices:\n netdata:\n image: netdata/netdata:edge\n container_name: netdata\n ports:\n - 19999:19999\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /etc/hostname:/etc/hostname:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\n deploy:\n mode: global\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}, {"channel": "stable", "command": "version: '3'\nservices:\n netdata:\n image: netdata/netdata:stable\n container_name: netdata\n ports:\n - 19999:19999\n restart: unless-stopped\n cap_add:\n - SYS_PTRACE\n security_opt:\n - apparmor:unconfined\n volumes:\n - netdataconfig:/etc/netdata\n - netdatalib:/var/lib/netdata\n - netdatacache:/var/cache/netdata\n - /etc/passwd:/host/etc/passwd:ro\n - /etc/group:/host/etc/group:ro\n - /proc:/host/proc:ro\n - /sys:/host/sys:ro\n - /etc/os-release:/host/etc/os-release:ro\n - /etc/hostname:/etc/hostname:ro\n{% if $showClaimingOptions %}\n environment:\n - NETDATA_CLAIM_TOKEN={% claim_token %}\n - NETDATA_CLAIM_URL={% claim_url %}\n - NETDATA_CLAIM_ROOMS={% $claim_rooms %}\n{% /if %}\n deploy:\n mode: global\nvolumes:\n netdataconfig:\n netdatalib:\n netdatacache:\n"}]}], "additional_info": "", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 19.03 or newer | Core | linux/i386, linux/amd64, linux/arm/v7, linux/arm64, linux/ppc64le | |\n", "quick_start": 3, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-fedora", "meta": {"name": "Fedora", "link": "https://www.fedoraproject.org/", "categories": ["deploy.operating-systems"], "icon_filename": "fedora.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 38 | Core | x86_64, aarch64 | |\n| 37 | Core | x86_64, aarch64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-freebsd", "meta": {"name": "FreeBSD", "link": "https://www.freebsd.org/", "categories": ["deploy.operating-systems"], "icon_filename": "freebsd.svg"}, "most_popular": true, "keywords": ["freebsd"], "install_description": "## Install dependencies\nPlease install the following packages using the command below:\n\n```pkg install bash e2fsprogs-libuuid git curl autoconf automake pkgconf pidof liblz4 libuv json-c cmake gmake```\nThis step needs root privileges. Please respond in the affirmative for any relevant prompts during the installation process.\n\nRun the following command on your node to install and claim Netdata:\n", "methods": [{"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "fetch", "commands": [{"channel": "nightly", "command": "fetch -o /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "fetch -o /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Netdata can also be installed via [FreeBSD ports](https://www.freshports.org/net-mgmt/netdata).\n", "related_resources": {}, "platform_info": "", "quick_start": 6, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-kubernetes", "meta": {"name": "Kubernetes", "link": "", "categories": ["deploy.docker-kubernetes"], "icon_filename": "kubernetes.svg"}, "keywords": ["kubernetes", "container", "Orchestrator"], "install_description": "**Use helm install to install Netdata on your Kubernetes cluster**\nFor a new installation use `helm install` or for existing clusters add the content below to your `override.yaml` and then run `helm upgrade -f override.yml netdata netdata/netdata`\n", "methods": [{"method": "Helm", "commands": [{"channel": "nightly", "command": "helm install netdata netdata/netdata \\\n--set image.tag=latest{% if $showClaimingOptions %} \\\n--set parent.claiming.enabled=\"true\" \\\n--set parent.claiming.token={% claim_token %} \\\n--set parent.claiming.rooms={% $claim_rooms %} \\\n--set child.claiming.enabled=\"true\" \\\n--set child.claiming.token={% claim_token %} \\\n--set child.claiming.rooms={% $claim_rooms %}{% /if %}\n"}, {"channel": "stable", "command": "helm install netdata netdata/netdata \\\n--set image.tag=stable{% if $showClaimingOptions %} \\\n--set parent.claiming.enabled=\"true\" \\\n--set parent.claiming.token={% claim_token %} \\\n--set parent.claiming.rooms={% $claim_rooms %} \\\n--set child.claiming.enabled=\"true\" \\\n--set child.claiming.token={% claim_token %} \\\n--set child.claiming.rooms={% $claim_rooms %}{% /if %}\n"}]}, {"method": "Existing Cluster", "commands": [{"channel": "nightly", "command": "image:\n tag: latest\n\nrestarter:\n enabled: true\n{% if $showClaimingOptions %}\n\nparent:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n\nchild:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n{% /if %}\n"}, {"channel": "stable", "command": "image:\n tag: stable\n\nrestarter:\n enabled: true\n{% if $showClaimingOptions %}\n\nparent:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n\nchild:\n claiming:\n enabled: true\n token: {% claim_token %}\n rooms: {% $claim_rooms %}\n{% /if %}\n"}]}], "additional_info": "", "related_resources": {}, "most_popular": true, "platform_info": "", "quick_start": 4, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-linux-generic", "meta": {"name": "Linux", "link": "", "categories": ["deploy.operating-systems"], "icon_filename": "linux.png"}, "keywords": ["linux"], "most_popular": true, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "", "quick_start": 1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-macos", "meta": {"name": "macOS", "link": "", "categories": ["deploy.operating-systems"], "icon_filename": "apple.svg"}, "most_popular": true, "keywords": ["macOS", "mac", "apple"], "install_description": "Run the following command on your Intel based OSX, macOS servers to install and claim Netdata:", "methods": [{"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "", "quick_start": 5, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-manjarolinux", "meta": {"name": "Manjaro Linux", "link": "https://manjaro.org/", "categories": ["deploy.operating-systems"], "icon_filename": "manjaro.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| latest | Intermediate | | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-opensuse", "meta": {"name": "SUSE Linux", "link": "https://www.suse.com/", "categories": ["deploy.operating-systems"], "icon_filename": "openSUSE.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 15.5 | Core | x86_64, aarch64 | |\n| 15.4 | Core | x86_64, aarch64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-oraclelinux", "meta": {"name": "Oracle Linux", "link": "https://www.oracle.com/linux/", "categories": ["deploy.operating-systems"], "icon_filename": "oraclelinux.svg"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 8 | Core | x86_64, aarch64 | |\n| 9 | Core | x86_64, aarch64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-rhel", "meta": {"name": "Red Hat Enterprise Linux", "link": "https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux", "categories": ["deploy.operating-systems"], "icon_filename": "rhel.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-ubuntu", "meta": {"name": "Ubuntu", "link": "https://ubuntu.com/", "categories": ["deploy.operating-systems"], "icon_filename": "ubuntu.png"}, "keywords": ["linux"], "most_popular": false, "install_description": "Run the following command on your node to install and claim Netdata:", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "Did you know you can also deploy Netdata on your OS using {% goToCategory navigateToSettings=$navigateToSettings categoryId=\"deploy.docker-kubernetes\" %}Kubernetes{% /goToCategory %} or {% goToCategory categoryId=\"deploy.docker-kubernetes\" %}Docker{% /goToCategory %}?\n", "related_resources": {}, "platform_info": "The following releases of this platform are supported:\n\n| Version | Support Tier | Native Package Architectures | Notes |\n|:-------:|:------------:|:----------------------------:|:----- |\n| 22.04 | Core | amd64, armhf, arm64 | |\n| 23.04 | Core | amd64, armhf, arm64 | |\n| 20.04 | Core | amd64, armhf, arm64 | |\n", "quick_start": -1, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "deploy-windows", "meta": {"name": "Windows", "link": "https://www.microsoft.com/en-us/windows", "categories": ["deploy.operating-systems"], "icon_filename": "windows.svg"}, "keywords": ["windows"], "install_description": "1. Install [Windows Exporter](https://github.com/prometheus-community/windows_exporter) on every Windows host you want to monitor.\n2. Install Netdata agent on Linux, FreeBSD or Mac.\n3. Configure Netdata to collect data remotely from your Windows hosts by adding one job per host to windows.conf file. See the [configuration section](https://learn.netdata.cloud/docs/data-collection/monitor-anything/System%20Metrics/Windows-machines#configuration) for details.\n4. Enable [virtual nodes](https://learn.netdata.cloud/docs/data-collection/windows-systems#virtual-nodes) configuration so the windows nodes are displayed as separate nodes.\n", "methods": [{"method": "wget", "commands": [{"channel": "nightly", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "wget -O /tmp/netdata-kickstart.sh https://my-netdata.io/kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}, {"method": "curl", "commands": [{"channel": "nightly", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --nightly-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}, {"channel": "stable", "command": "curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --stable-channel{% if $showClaimingOptions %} --claim-token {% claim_token %} --claim-rooms {% $claim_rooms %} --claim-url {% claim_url %}{% /if %}\n"}]}], "additional_info": "", "related_resources": {}, "most_popular": true, "platform_info": "", "quick_start": 2, "integration_type": "deploy", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/deploy.yaml"}, {"id": "export-appoptics", "meta": {"name": "AppOptics", "link": "https://www.solarwinds.com/appoptics", "categories": ["export"], "icon_filename": "solarwinds.svg", "keywords": ["app optics", "AppOptics", "Solarwinds"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# AppOptics\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-aws-kinesis", "meta": {"name": "AWS Kinesis", "link": "https://aws.amazon.com/kinesis/", "categories": ["export"], "icon_filename": "aws-kinesis.svg"}, "keywords": ["exporter", "AWS", "Kinesis"], "overview": "# AWS Kinesis\n\nExport metrics to AWS Kinesis Data Streams\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- First [install](https://docs.aws.amazon.com/en_us/sdk-for-cpp/v1/developer-guide/setup.html) AWS SDK for C++\n- Here are the instructions when building from source, to ensure 3rd party dependencies are installed:\n ```bash\n git clone --recursive https://github.com/aws/aws-sdk-cpp.git\n cd aws-sdk-cpp/\n git submodule update --init --recursive\n mkdir BUILT\n cd BUILT\n cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_ONLY=kinesis ..\n make\n make install\n ```\n- `libcrypto`, `libssl`, and `libcurl` are also required to compile Netdata with Kinesis support enabled.\n- Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nNetdata automatically computes a partition key for every record with the purpose to distribute records across available shards evenly.\nThe following options can be defined for this exporter.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[kinesis:my_instance]\n enabled = yes\n destination = us-east-1\n\n```\n##### Configuration with AWS credentials\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[kinesis:my_instance]\n enabled = yes\n destination = us-east-1\n # AWS credentials\n aws_access_key_id = your_access_key_id\n aws_secret_access_key = your_secret_access_key\n # destination stream\n stream name = your_stream_name\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/aws_kinesis/metadata.yaml"}, {"id": "export-azure-data", "meta": {"name": "Azure Data Explorer", "link": "https://azure.microsoft.com/en-us/pricing/details/data-explorer/", "categories": ["export"], "icon_filename": "azuredataex.jpg", "keywords": ["Azure Data Explorer", "Azure"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Azure Data Explorer\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-azure-event", "meta": {"name": "Azure Event Hub", "link": "https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-about", "categories": ["export"], "icon_filename": "azureeventhub.png", "keywords": ["Azure Event Hub", "Azure"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Azure Event Hub\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-bigquery", "meta": {"name": "Google BigQuery", "link": "https://cloud.google.com/bigquery/", "categories": ["export"], "icon_filename": "bigquery.png", "keywords": ["export", "Google BigQuery", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Google BigQuery\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-blueflood", "meta": {"name": "Blueflood", "link": "http://blueflood.io/", "categories": ["export"], "icon_filename": "blueflood.png", "keywords": ["export", "Blueflood", "graphite"]}, "keywords": ["exporter", "graphite", "remote write", "time series"], "overview": "# Blueflood\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/graphite/metadata.yaml"}, {"id": "export-chronix", "meta": {"name": "Chronix", "link": "https://dbdb.io/db/chronix", "categories": ["export"], "icon_filename": "chronix.png", "keywords": ["export", "chronix", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Chronix\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-cortex", "meta": {"name": "Cortex", "link": "https://cortexmetrics.io/", "categories": ["export"], "icon_filename": "cortex.png", "keywords": ["export", "cortex", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Cortex\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-crate", "meta": {"name": "CrateDB", "link": "https://crate.io/", "categories": ["export"], "icon_filename": "crate.svg", "keywords": ["export", "CrateDB", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# CrateDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-elastic", "meta": {"name": "ElasticSearch", "link": "https://www.elastic.co/", "categories": ["export"], "icon_filename": "elasticsearch.svg", "keywords": ["export", "ElasticSearch", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# ElasticSearch\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-gnocchi", "meta": {"name": "Gnocchi", "link": "https://wiki.openstack.org/wiki/Gnocchi", "categories": ["export"], "icon_filename": "gnocchi.svg", "keywords": ["export", "Gnocchi", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Gnocchi\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-google-pubsub", "meta": {"name": "Google Cloud Pub Sub", "link": "https://cloud.google.com/pubsub", "categories": ["export"], "icon_filename": "pubsub.png"}, "keywords": ["exporter", "Google Cloud", "Pub Sub"], "overview": "# Google Cloud Pub Sub\n\nExport metrics to Google Cloud Pub/Sub Service\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- First [install](https://github.com/googleapis/google-cloud-cpp/) install Google Cloud Platform C++ Client Libraries\n- Pub/Sub support is also dependent on the dependencies of those libraries, like `protobuf`, `protoc`, and `grpc`\n- Next, Netdata should be re-installed from the source. The installer will detect that the required libraries are now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = pubsub.googleapis.com\n ```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\n- Set the destination option to a Pub/Sub service endpoint. pubsub.googleapis.com is the default one.\n- Create the credentials JSON file by following Google Cloud's authentication guide.\n- The user running the Agent (typically netdata) needs read access to google_cloud_credentials.json, which you can set\n `chmod 400 google_cloud_credentials.json; chown netdata google_cloud_credentials.json`\n- Set the credentials file option to the full path of the file.\n\n\n```yaml\n[pubsub:my_instance]\n enabled = yes\n destination = pubsub.googleapis.com\n credentials file = /etc/netdata/google_cloud_credentials.json\n project id = my_project\n topic id = my_topic\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/pubsub/metadata.yaml"}, {"id": "export-graphite", "meta": {"name": "Graphite", "link": "https://graphite.readthedocs.io/en/latest/", "categories": ["export"], "icon_filename": "graphite.png"}, "keywords": ["exporter", "graphite", "remote write", "time series"], "overview": "# Graphite\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/graphite/metadata.yaml"}, {"id": "export-influxdb", "meta": {"name": "InfluxDB", "link": "https://www.influxdata.com/", "categories": ["export"], "icon_filename": "influxdb.svg", "keywords": ["InfluxDB", "Influx", "export", "graphite"]}, "keywords": ["exporter", "graphite", "remote write", "time series"], "overview": "# InfluxDB\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/graphite/metadata.yaml"}, {"id": "export-irondb", "meta": {"name": "IRONdb", "link": "https://docs.circonus.com/irondb/", "categories": ["export"], "icon_filename": "irondb.png", "keywords": ["export", "IRONdb", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# IRONdb\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-json", "meta": {"name": "JSON", "link": "https://learn.netdata.cloud/docs/exporting/json-document-databases", "categories": ["export"], "icon_filename": "json.svg"}, "keywords": ["exporter", "json"], "overview": "# JSON\n\nUse the JSON connector for the exporting engine to archive your agent's metrics to JSON document databases for long-term storage,\nfurther analysis, or correlation with data from other sources\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = localhost:5448\n ```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\n\n\n```yaml\n[json:my_json_instance]\n enabled = yes\n destination = localhost:5448\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `json:https:my_json_instance`.\n\n```yaml\n[json:my_json_instance]\n enabled = yes\n destination = localhost:5448\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/json/metadata.yaml"}, {"id": "export-kafka", "meta": {"name": "Kafka", "link": "https://kafka.apache.org/", "categories": ["export"], "icon_filename": "kafka.svg", "keywords": ["export", "Kafka", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Kafka\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-kairosdb", "meta": {"name": "KairosDB", "link": "https://kairosdb.github.io/", "categories": ["export"], "icon_filename": "kairos.png", "keywords": ["KairosDB", "kairos", "export", "graphite"]}, "keywords": ["exporter", "graphite", "remote write", "time series"], "overview": "# KairosDB\n\nUse the Graphite connector for the exporting engine to archive your Netdata metrics to Graphite providers for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- You have already installed Netdata and Graphite.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic configuration\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n\n```\n##### Configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:netdata]\n enabled = yes\n destination = localhost:2003\n username = my_username\n password = my_password\n\n```\n##### Detailed Configuration for a remote, secure host\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[graphite:https:netdata]\n enabled = yes\n username = my_username\n password = my_password\n destination = 10.10.1.114:2003\n # data source = average\n # prefix = netdata\n # hostname = my_hostname\n # update every = 10\n # buffer on failures = 10\n # timeout ms = 20000\n # send names instead of ids = yes\n # send charts matching = *\n # send hosts matching = localhost *\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/graphite/metadata.yaml"}, {"id": "export-m3db", "meta": {"name": "M3DB", "link": "https://m3db.io/", "categories": ["export"], "icon_filename": "m3db.png", "keywords": ["export", "M3DB", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# M3DB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-metricfire", "meta": {"name": "MetricFire", "link": "https://www.metricfire.com/", "categories": ["export"], "icon_filename": "metricfire.png", "keywords": ["export", "MetricFire", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# MetricFire\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-mongodb", "meta": {"name": "MongoDB", "link": "https://www.mongodb.com/", "categories": ["export"], "icon_filename": "mongodb.svg"}, "keywords": ["exporter", "MongoDB"], "overview": "# MongoDB\n\nUse the MongoDB connector for the exporting engine to archive your agent's metrics to a MongoDB database\nfor long-term storage, further analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- To use MongoDB as an external storage for long-term archiving, you should first [install](http://mongoc.org/libmongoc/current/installing.html) libmongoc 1.7.0 or higher.\n- Next, re-install Netdata from the source, which detects that the required library is now available.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:27017 10.11.14.3:4242 10.11.14.4:27017\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Basic configuration\n\nThe default socket timeout depends on the exporting connector update interval.\nThe timeout is 500 ms shorter than the interval (but not less than 1000 ms). You can alter the timeout using the sockettimeoutms MongoDB URI option.\n\n\n```yaml\n[mongodb:my_instance]\n enabled = yes\n destination = mongodb://\n database = your_database_name\n collection = your_collection_name\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/mongodb/metadata.yaml"}, {"id": "export-newrelic", "meta": {"name": "New Relic", "link": "https://newrelic.com/", "categories": ["export"], "icon_filename": "newrelic.svg", "keywords": ["export", "NewRelic", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# New Relic\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-opentsdb", "meta": {"name": "OpenTSDB", "link": "https://github.com/OpenTSDB/opentsdb", "categories": ["export"], "icon_filename": "opentsdb.png"}, "keywords": ["exporter", "OpenTSDB", "scalable time series"], "overview": "# OpenTSDB\n\nUse the OpenTSDB connector for the exporting engine to archive your Netdata metrics to OpenTSDB databases for long-term storage,\nfurther analysis, or correlation with data from other sources.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- OpenTSDB and Netdata, installed, configured and operational.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to OpenTSDB. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used (opentsdb = 4242).\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:4242 10.11.14.3:4242 10.11.14.4:4242\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Minimal configuration\n\nAdd `:http` or `:https` modifiers to the connector type if you need to use other than a plaintext protocol.\nFor example: `opentsdb:http:my_opentsdb_instance`, `opentsdb:https:my_opentsdb_instance`.\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n\n```\n##### HTTP authentication\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n username = my_username\n password = my_password\n\n```\n##### Using `send hosts matching`\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n send hosts matching = localhost *\n\n```\n##### Using `send charts matching`\n\n\n\n```yaml\n[opentsdb:my_opentsdb_instance]\n enabled = yes\n destination = localhost:4242\n send charts matching = *\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/opentsdb/metadata.yaml"}, {"id": "export-pgsql", "meta": {"name": "PostgreSQL", "link": "https://www.postgresql.org/", "categories": ["export"], "icon_filename": "postgres.svg", "keywords": ["export", "PostgreSQL", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# PostgreSQL\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-prometheus-remote", "meta": {"name": "Prometheus Remote Write", "link": "https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage", "categories": ["export"], "icon_filename": "prometheus.svg"}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Prometheus Remote Write\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-quasar", "meta": {"name": "QuasarDB", "link": "https://doc.quasar.ai/master/", "categories": ["export"], "icon_filename": "quasar.jpeg", "keywords": ["export", "quasar", "quasarDB", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# QuasarDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-splunk", "meta": {"name": "Splunk SignalFx", "link": "https://www.splunk.com/en_us/products/observability.html", "categories": ["export"], "icon_filename": "splunk.svg", "keywords": ["export", "splunk", "signalfx", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Splunk SignalFx\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-thanos", "meta": {"name": "Thanos", "link": "https://thanos.io/", "categories": ["export"], "icon_filename": "thanos.png", "keywords": ["export", "thanos", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Thanos\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-tikv", "meta": {"name": "TiKV", "link": "https://tikv.org/", "categories": ["export"], "icon_filename": "tikv.png", "keywords": ["export", "TiKV", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# TiKV\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-timescaledb", "meta": {"name": "TimescaleDB", "link": "https://www.timescale.com/", "categories": ["export"], "icon_filename": "timescale.png", "keywords": ["export", "TimescaleDB", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# TimescaleDB\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-victoria", "meta": {"name": "VictoriaMetrics", "link": "https://victoriametrics.com/products/open-source/", "categories": ["export"], "icon_filename": "victoriametrics.png", "keywords": ["export", "victoriametrics", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# VictoriaMetrics\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-vmware", "meta": {"name": "VMware Aria", "link": "https://www.vmware.com/products/aria-operations-for-applications.html", "categories": ["export"], "icon_filename": "aria.png", "keywords": ["export", "VMware", "Aria", "Tanzu", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# VMware Aria\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "export-wavefront", "meta": {"name": "Wavefront", "link": "https://docs.wavefront.com/wavefront_data_ingestion.html", "categories": ["export"], "icon_filename": "wavefront.png", "keywords": ["export", "Wavefront", "prometheus", "remote write"]}, "keywords": ["exporter", "Prometheus", "remote write", "time series"], "overview": "# Wavefront\n\nUse the Prometheus remote write exporting connector to archive your Netdata metrics to the external storage provider of your choice for long-term storage and further analysis.\n\n\n## Limitations\n\nThe remote write exporting connector does not support buffer on failures.\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Netdata and the external storage provider of your choice, installed, configured and operational.\n- `protobuf` and `snappy` libraries installed.\n- Netdata reinstalled after the libraries.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `exporting.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config exporting.conf\n```\n#### Options\n\nThe following options can be defined for this exporter.\n\n{% details summary=\"Config options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| enabled | Enables or disables an exporting connector instance (yes|no). | | True |\n| destination | Accepts a space separated list of hostnames, IPs (IPv4 and IPv6) and ports to connect to. Netdata will use the first available to send the metrics. | | True |\n| username | Username for HTTP authentication | | False |\n| password | Password for HTTP authentication | | False |\n| data source | Selects the kind of data that will be sent to the external database. (as collected|average|sum) | | False |\n| hostname | The hostname to be used for sending data to the external database server. | | False |\n| prefix | The prefix to add to all metrics. | | False |\n| update every | Frequency of sending sending data to the external database, in seconds.\n | | False |\n| buffer on failures | The number of iterations (`update every` seconds) to buffer data, when the external database server is not available.\n | | False |\n| timeout ms | The timeout in milliseconds to wait for the external database server to process the data. | | False |\n| send hosts matching | Hosts filter. Determines which hosts will be sent to the external database. The syntax is [simple patterns](https://github.com/netdata/netdata/tree/master/libnetdata/simple_pattern#simple-patterns).\n | | False |\n| send charts matching | One or more space separated patterns (use * as wildcard) checked against both chart id and chart name.\n | | False |\n| send names instead of ids | Controls the metric names Netdata should send to the external database (yes|no). | | False |\n| send configured labels | Controls if host labels defined in the `[host labels]` section in `netdata.conf` should be sent to the external database (yes|no). | | False |\n| send automatic labels | Controls if automatically created labels, like `_os_name` or `_architecture` should be sent to the external database (yes|no). | | False |\n\n##### destination\n\nThe format of each item in this list, is: [PROTOCOL:]IP[:PORT].\n- PROTOCOL can be udp or tcp. tcp is the default and only supported by the current exporting engine.\n- IP can be XX.XX.XX.XX (IPv4), or [XX:XX...XX:XX] (IPv6). For IPv6 you can to enclose the IP in [] to separate it from the port.\n- PORT can be a number of a service name. If omitted, the default port for the exporting connector will be used.\n\nExample IPv4:\n ```yaml\n destination = 10.11.14.2:2003 10.11.14.3:4242 10.11.14.4:2003\n ```\nExample IPv6 and IPv4 together:\n```yaml\ndestination = [ffff:...:0001]:2003 10.11.12.1:2003\n```\nWhen multiple servers are defined, Netdata will try the next one when the previous one fails.\n\n\n##### update every\n\nNetdata will add some randomness to this number, to prevent stressing the external server when many Netdata servers\nsend data to the same database. This randomness does not affect the quality of the data, only the time they are sent.\n\n\n##### buffer on failures\n\nIf the server fails to receive the data after that many failures, data loss on the connector instance is expected (Netdata will also log it).\n\n\n##### send hosts matching\n\nIncludes one or more space separated patterns, using * as wildcard (any number of times within each pattern).\nThe patterns are checked against the hostname (the localhost is always checked as localhost), allowing us to\nfilter which hosts will be sent to the external database when this Netdata is a central Netdata aggregating multiple hosts.\n\nA pattern starting with `!` gives a negative match. So to match all hosts named `*db*` except hosts containing `*child*`,\nuse `!*child* *db*` (so, the order is important: the first pattern matching the hostname will be used - positive or negative).\n\n\n##### send charts matching\n\nA pattern starting with ! gives a negative match. So to match all charts named apps.* except charts ending in *reads,\nuse !*reads apps.* (so, the order is important: the first pattern matching the chart id or the chart name will be used,\npositive or negative). There is also a URL parameter filter that can be used while querying allmetrics. The URL parameter\nhas a higher priority than the configuration option.\n\n\n##### send names instead of ids\n\nNetdata supports names and IDs for charts and dimensions. Usually IDs are unique identifiers as read by the system and names\nare human friendly labels (also unique). Most charts and metrics have the same ID and name, but in several cases they are\ndifferent : disks with device-mapper, interrupts, QoS classes, statsd synthetic charts, etc.\n\n\n{% /details %}\n#### Examples\n\n##### Example configuration\n\nBasic example configuration for Prometheus remote write.\n\n```yaml\n[prometheus_remote_write:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n\n```\n##### Example configuration with HTTPS and HTTP authentication\n\nAdd `:https` modifier to the connector type if you need to use the TLS/SSL protocol. For example: `remote_write:https:my_instance`.\n\n```yaml\n[prometheus_remote_write:https:my_instance]\n enabled = yes\n destination = 10.11.14.2:2003\n remote write URL path = /receive\n username = my_username\n password = my_password\n\n```\n", "integration_type": "exporter", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/exporting/prometheus/metadata.yaml"}, {"id": "notify-alerta", "meta": {"name": "Alerta", "link": "https://alerta.io/", "categories": ["notify.agent"], "icon_filename": "alerta.png"}, "keywords": ["Alerta"], "overview": "# Alerta\n\nThe [Alerta](https://alerta.io/) monitoring system is a tool used to consolidate and de-duplicate alerts from multiple sources for quick \u2018at-a-glance\u2019 visualization. With just one system you can monitor alerts from many other monitoring tools on a single screen.\nYou can send Netdata alerts to Alerta to see alerts coming from many Netdata hosts or also from a multi-host Netdata configuration.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A working Alerta instance\n- An Alerta API key (if authentication in Alerta is enabled)\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_ALERTA | Set `SEND_ALERTA` to YES | | True |\n| ALERTA_WEBHOOK_URL | set `ALERTA_WEBHOOK_URL` to the API url you defined when you installed the Alerta server. | | True |\n| ALERTA_API_KEY | Set `ALERTA_API_KEY` to your API key. | | True |\n| DEFAULT_RECIPIENT_ALERTA | Set `DEFAULT_RECIPIENT_ALERTA` to the default recipient environment you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured. | | True |\n| DEFAULT_RECIPIENT_CUSTOM | Set different recipient environments per role, by editing `DEFAULT_RECIPIENT_CUSTOM` with the environment name of your choice | | False |\n\n##### ALERTA_API_KEY\n\nYou will need an API key to send messages from any source, if Alerta is configured to use authentication (recommended). To create a new API key:\n1. Go to Configuration > API Keys.\n2. Create a new API key called \"netdata\" with `write:alerts` permission.\n\n\n##### DEFAULT_RECIPIENT_CUSTOM\n\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_alerta[sysadmin]=\"Systems\"\nrole_recipients_alerta[domainadmin]=\"Domains\"\nrole_recipients_alerta[dba]=\"Databases Systems\"\nrole_recipients_alerta[webmaster]=\"Marketing Development\"\nrole_recipients_alerta[proxyadmin]=\"Proxy\"\nrole_recipients_alerta[sitemgr]=\"Sites\"\n```\n\nThe values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# alerta (alerta.io) global notification options\n\nSEND_ALERTA=\"YES\"\nALERTA_WEBHOOK_URL=\"http://yourserver/alerta/api\"\nALERTA_API_KEY=\"INSERT_YOUR_API_KEY_HERE\"\nDEFAULT_RECIPIENT_ALERTA=\"Production\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/alerta/metadata.yaml"}, {"id": "notify-awssns", "meta": {"name": "AWS SNS", "link": "https://aws.amazon.com/sns/", "categories": ["notify.agent"], "icon_filename": "aws.svg"}, "keywords": ["AWS SNS"], "overview": "# AWS SNS\n\nAs part of its AWS suite, Amazon provides a notification broker service called 'Simple Notification Service' (SNS). Amazon SNS works similarly to Netdata's own notification system, allowing to dispatch a single notification to multiple subscribers of different types. Among other things, SNS supports sending notifications to:\n- Email addresses\n- Mobile Phones via SMS\n- HTTP or HTTPS web hooks\n- AWS Lambda functions\n- AWS SQS queues\n- Mobile applications via push notifications\nYou can send notifications through Amazon SNS using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n\n## Limitations\n\n- While Amazon SNS supports sending differently formatted messages for different delivery methods, Netdata does not currently support this functionality.\n- For email notification support, we recommend using Netdata's email notifications, as it is has the following benefits:\n - In most cases, it requires less configuration.\n - Netdata's emails are nicely pre-formatted and support features like threading, which requires a lot of manual effort in SNS.\n - It is less resource intensive and more cost-efficient than SNS.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The [Amazon Web Services CLI tools](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (awscli).\n- An actual home directory for the user you run Netdata as, instead of just using `/` as a home directory. The setup depends on the distribution, but `/var/lib/netdata` is the recommended directory. If you are using Netdata as a dedicated user, the permissions will already be correct.\n- An Amazon SNS topic to send notifications to with one or more subscribers. The Getting Started section of the Amazon SNS documentation covers the basics of how to set this up. Make note of the Topic ARN when you create the topic.\n- While not mandatory, it is highly recommended to create a dedicated IAM user on your account for Netdata to send notifications. This user needs to have programmatic access, and should only allow access to SNS. For an additional layer of security, you can create one for each system or group of systems.\n- Terminal access to the Agent you wish to configure.\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| aws path | The full path of the aws command. If empty, the system `$PATH` will be searched for it. If not found, Amazon SNS notifications will be silently disabled. | | True |\n| SEND_AWSNS | Set `SEND_AWSNS` to YES | | True |\n| AWSSNS_MESSAGE_FORMAT | Set `AWSSNS_MESSAGE_FORMAT` to to the string that you want the alert to be sent into. | | True |\n| DEFAULT_RECIPIENT_AWSSNS | Set `DEFAULT_RECIPIENT_AWSSNS` to the Topic ARN you noted down upon creating the Topic. | | True |\n\n##### AWSSNS_MESSAGE_FORMAT\n\nThe supported variables are:\n\n| Variable name | Description |\n|:---------------------------:|:---------------------------------------------------------------------------------|\n| `${alarm}` | Like \"name = value units\" |\n| `${status_message}` | Like \"needs attention\", \"recovered\", \"is critical\" |\n| `${severity}` | Like \"Escalated to CRITICAL\", \"Recovered from WARNING\" |\n| `${raised_for}` | Like \"(alarm was raised for 10 minutes)\" |\n| `${host}` | The host generated this event |\n| `${url_host}` | Same as ${host} but URL encoded |\n| `${unique_id}` | The unique id of this event |\n| `${alarm_id}` | The unique id of the alarm that generated this event |\n| `${event_id}` | The incremental id of the event, for this alarm id |\n| `${when}` | The timestamp this event occurred |\n| `${name}` | The name of the alarm, as given in netdata health.d entries |\n| `${url_name}` | Same as ${name} but URL encoded |\n| `${chart}` | The name of the chart (type.id) |\n| `${url_chart}` | Same as ${chart} but URL encoded |\n| `${family}` | The family of the chart |\n| `${url_family}` | Same as ${family} but URL encoded |\n| `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${value}` | The current value of the alarm |\n| `${old_value}` | The previous value of the alarm |\n| `${src}` | The line number and file the alarm has been configured |\n| `${duration}` | The duration in seconds of the previous alarm state |\n| `${duration_txt}` | Same as ${duration} for humans |\n| `${non_clear_duration}` | The total duration in seconds this is/was non-clear |\n| `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |\n| `${units}` | The units of the value |\n| `${info}` | A short description of the alarm |\n| `${value_string}` | Friendly value (with units) |\n| `${old_value_string}` | Friendly old value (with units) |\n| `${image}` | The URL of an image to represent the status of the alarm |\n| `${color}` | A color in AABBCC format for the alarm |\n| `${goto_url}` | The URL the user can click to see the netdata dashboard |\n| `${calc_expression}` | The expression evaluated to provide the value for the alarm |\n| `${calc_param_values}` | The value of the variables in the evaluated expression |\n| `${total_warnings}` | The total number of alarms in WARNING state on the host |\n| `${total_critical}` | The total number of alarms in CRITICAL state on the host |\n\n\n##### DEFAULT_RECIPIENT_AWSSNS\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different recipient Topics per **role**, by editing `DEFAULT_RECIPIENT_AWSSNS` with the Topic ARN you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_awssns[sysadmin]=\"arn:aws:sns:us-east-2:123456789012:Systems\"\nrole_recipients_awssns[domainadmin]=\"arn:aws:sns:us-east-2:123456789012:Domains\"\nrole_recipients_awssns[dba]=\"arn:aws:sns:us-east-2:123456789012:Databases\"\nrole_recipients_awssns[webmaster]=\"arn:aws:sns:us-east-2:123456789012:Development\"\nrole_recipients_awssns[proxyadmin]=\"arn:aws:sns:us-east-2:123456789012:Proxy\"\nrole_recipients_awssns[sitemgr]=\"arn:aws:sns:us-east-2:123456789012:Sites\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\nAn example working configuration would be:\n\n```yaml\n```conf\n#------------------------------------------------------------------------------\n# Amazon SNS notifications\n\nSEND_AWSSNS=\"YES\"\nAWSSNS_MESSAGE_FORMAT=\"${status} on ${host} at ${date}: ${chart} ${value_string}\"\nDEFAULT_RECIPIENT_AWSSNS=\"arn:aws:sns:us-east-2:123456789012:MyTopic\"\n```\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/awssns/metadata.yaml"}, {"id": "notify-cloud-discord", "meta": {"name": "Discord", "link": "https://discord.com/", "categories": ["notify.cloud"], "icon_filename": "discord.png"}, "keywords": ["discord", "community"], "overview": "# Discord\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Discord.\n", "setup": "## Setup\n\n### Prerequisites\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- You need to have a Discord server able to receive webhooks integrations.\n\n### Discord Server Configuration\nSteps to configure your Discord server to receive [webhook notifications](https://support.discord.com/hc/en-us/articles/228383668) from Netdata:\n1. Go to `Server Settings` --> `Integrations`\n2. **Create Webhook** or **View Webhooks** if you already have some defined\n3. Specify the **Name** and **Channel** on your new webhook\n4. Use Webhook URL to add your notification configuration on Netdata UI\n\n### Netdata Configuration Steps\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Discord** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Discord:\n - Define the type channel you want to send notifications to: **Text channel** or **Forum channel**\n - Webhook URL - URL provided on Discord for the channel you want to receive your notifications.\n - Thread name - if the Discord channel is a **Forum channel** you will need to provide the thread name as well\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-mattermost", "meta": {"name": "Mattermost", "link": "https://mattermost.com/", "categories": ["notify.cloud"], "icon_filename": "mattermost.png"}, "keywords": ["mattermost"], "overview": "# Mattermost\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Mattermost.\n", "setup": "## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Mattermost to add new integrations.\n- You need to have a Mattermost app on your workspace to receive the webhooks.\n\n### Mattermost Server Configuration\n\nSteps to configure your Mattermost to receive notifications from Netdata:\n\n1. In Mattermost, go to Product menu > Integrations > Incoming Webhook\n - If you don\u2019t have the Integrations option, incoming webhooks may not be enabled on your Mattermost server or may be disabled for non-admins. They can be enabled by a System Admin from System Console > Integrations > Integration Management. Once incoming webhooks are enabled, continue with the steps below.\n2. Select Add Incoming Webhook and add a name and description for the webhook. The description can be up to 500 characters\n3. Select the channel to receive webhook payloads, then select Add to create the webhook\n4. You will end up with a webhook endpoint that looks like below:\n `https://your-mattermost-server.com/hooks/xxx-generatedkey-xxx`\n\n - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your Mattermost instance.\n\nFor more details please check Mattermost's article [Incoming webhooks for Mattermost](https://developers.mattermost.com/integrate/webhooks/incoming/).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Mattermost** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Mattermost:\n - Webhook URL - URL provided on Mattermost for the channel you want to receive your notifications\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-opsgenie", "meta": {"name": "Opsgenie", "link": "https://www.atlassian.com/software/opsgenie", "categories": ["notify.cloud"], "icon_filename": "opsgenie.png"}, "keywords": ["opsgenie", "atlassian"], "overview": "# Opsgenie\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Opsgenie.\n", "setup": "## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Opsgenie to add new integrations.\n\n### Opsgenie Server Configuration\n\nSteps to configure your Opsgenie to receive notifications from Netdata:\n\n1. Go to integrations tab of your team, click **Add integration**\n2. Pick **API** from available integrations. Copy your API Key and press **Save Integration**.\n3. Paste copied API key into the corresponding field in **Integration configuration** section of Opsgenie modal window in Netdata.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Opsgenie** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Opsgenie:\n - API Key - a key provided on Opsgenie for the channel you want to receive your notifications.\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-pagerduty", "meta": {"name": "PagerDuty", "link": "https://www.pagerduty.com/", "categories": ["notify.cloud"], "icon_filename": "pagerduty.png"}, "keywords": ["pagerduty"], "overview": "# PagerDuty\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on PagerDuty.\n", "setup": "## Setup\n\n### Prerequisites\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have a PagerDuty service to receive events using webhooks.\n\n\n### PagerDuty Server Configuration\nSteps to configure your PagerDuty to receive notifications from Netdata:\n\n1. Create a service to receive events from your services directory page on PagerDuty\n2. At step 3, select `Events API V2` Integration or **View Webhooks** if you already have some defined\n3. Once the service is created you will be redirected to its configuration page, where you can copy the **integration key**, that you will need need to add to your notification configuration on Netdata UI.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **PagerDuty** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For PagerDuty:\n - Integration Key - is a 32 character key provided by PagerDuty to receive events on your service.\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-rocketchat", "meta": {"name": "RocketChat", "link": "https://www.rocket.chat/", "categories": ["notify.cloud"], "icon_filename": "rocketchat.png"}, "keywords": ["rocketchat"], "overview": "# RocketChat\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on RocketChat.\n", "setup": "## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have permissions on Mattermost to add new integrations.\n- You need to have a RocketChat app on your workspace to receive the webhooks.\n\n### Mattermost Server Configuration\n\nSteps to configure your RocketChat to receive notifications from Netdata:\n\n1. In RocketChat, Navigate to Administration > Workspace > Integrations.\n2. Click **+New** at the top right corner.\n3. For more details about each parameter, check [create-a-new-incoming-webhook](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations#create-a-new-incoming-webhook).\n4. After configuring integration, click Save.\n5. You will end up with a webhook endpoint that looks like below:\n `https://your-server.rocket.chat/hooks/YYYYYYYYYYYYYYYYYYYYYYYY/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`\n - Treat this endpoint as a secret. Anyone who has it will be able to post messages to your RocketChat instance.\n\n\nFor more details please check RocketChat's article Incoming webhooks for [RocketChat](https://docs.rocket.chat/use-rocket.chat/workspace-administration/integrations/).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **RocketChat** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For RocketChat:\n - Webhook URL - URL provided on RocketChat for the channel you want to receive your notifications.\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-slack", "meta": {"name": "Slack", "link": "https://slack.com/", "categories": ["notify.cloud"], "icon_filename": "slack.png"}, "keywords": ["slack"], "overview": "# Slack\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on Slack.\n", "setup": "## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Business** plan or higher\n- You need to have a Slack app on your workspace to receive the Webhooks.\n\n### Slack Server Configuration\n\nSteps to configure your Slack to receive notifications from Netdata:\n\n1. Create an app to receive webhook integrations. Check [Create an app](https://api.slack.com/apps?new_app=1) from Slack documentation for further details\n2. Install the app on your workspace\n3. Configure Webhook URLs for your workspace\n - On your app go to **Incoming Webhooks** and click on **activate incoming webhooks**\n - At the bottom of **Webhook URLs for Your Workspace** section you have **Add New Webhook to Workspace**\n - After pressing that specify the channel where you want your notifications to be delivered\n - Once completed copy the Webhook URL that you will need to add to your notification configuration on Netdata UI\n\nFor more details please check Slacks's article [Incoming webhooks for Slack](https://slack.com/help/articles/115005265063-Incoming-webhooks-for-Slack).\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Slack** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Slack:\n - Webhook URL - URL provided on Slack for the channel you want to receive your notifications.\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-cloud-webhook", "meta": {"name": "Webhook", "link": "https://en.wikipedia.org/wiki/Webhook", "categories": ["notify.cloud"], "icon_filename": "webhook.svg"}, "keywords": ["generic webhooks", "webhooks"], "overview": "# Webhook\n\nFrom the Netdata Cloud UI, you can manage your space's notification settings and enable the configuration to deliver notifications on a webhook using a predefined schema.\n", "setup": "## Setup\n\n### Prerequisites\n\n- A Netdata Cloud account\n- Access to the Netdata Space as an **administrator**\n- The Netdata Space needs to be on **Pro** plan or higher\n- You need to have an app that allows you to receive webhooks following a predefined schema.\n\n### Netdata Configuration Steps\n\n1. Click on the **Space settings** cog (located above your profile icon)\n2. Click on the **Notification** tab\n3. Click on the **+ Add configuration** button (near the top-right corner of your screen)\n4. On the **Webhook** card click on **+ Add**\n5. A modal will be presented to you to enter the required details to enable the configuration:\n * **Notification settings** are Netdata specific settings\n - Configuration name - you can optionally provide a name for your configuration you can easily refer to it\n - Rooms - by specifying a list of Rooms you are select to which nodes or areas of your infrastructure you want to be notified using this configuration\n - Notification - you specify which notifications you want to be notified using this configuration: All Alerts and unreachable, All Alerts, Critical only\n * **Integration configuration** are the specific notification integration required settings, which vary by notification method. For Webhook:\n - Webhook URL - webhook URL is the url of the service that Netdata will send notifications to. In order to keep the communication secured, we only accept HTTPS urls.\n - Extra headers - these are optional key-value pairs that you can set to be included in the HTTP requests sent to the webhook URL.\n - Authentication Mechanism - Netdata webhook integration supports 3 different authentication mechanisms.\n * Mutual TLS (recommended) - default authentication mechanism used if no other method is selected.\n * Basic - the client sends a request with an Authorization header that includes a base64-encoded string in the format **username:password**. These will settings will be required inputs.\n * Bearer - the client sends a request with an Authorization header that includes a **bearer token**. This setting will be a required input.\n\n\n ### Webhook service\n\n A webhook integration allows your application to receive real-time alerts from Netdata by sending HTTP requests to a specified URL. In this document, we'll go over the steps to set up a generic webhook integration, including adding headers, and implementing different types of authorization mechanisms.\n\n #### Netdata webhook integration\n\n A webhook integration is a way for one service to notify another service about events that occur within it. This is done by sending an HTTP POST request to a specified URL (known as the \"webhook URL\") when an event occurs.\n\n Netdata webhook integration service will send alert notifications to the destination service as soon as they are detected.\n\n The notification content sent to the destination service will be a JSON object having these properties:\n\n | field | type | description |\n | :-- | :-- | :-- |\n | message | string | A summary message of the alert. |\n | alarm | string | The alarm the notification is about. |\n | info | string | Additional info related with the alert. |\n | chart | string | The chart associated with the alert. |\n | context | string | The chart context. |\n | space | string | The space where the node that raised the alert is assigned. |\n | rooms | object[object(string,string)] | Object with list of rooms names and urls where the node belongs to. |\n | family | string | Context family. |\n | class | string | Classification of the alert, e.g. \"Error\". |\n | severity | string | Alert severity, can be one of \"warning\", \"critical\" or \"clear\". |\n | date | string | Date of the alert in ISO8601 format. |\n | duration | string | Duration the alert has been raised. |\n | additional_active_critical_alerts | integer | Number of additional critical alerts currently existing on the same node. |\n | additional_active_warning_alerts | integer | Number of additional warning alerts currently existing on the same node. |\n | alarm_url | string | Netdata Cloud URL for this alarm. |\n\n #### Extra headers\n\n When setting up a webhook integration, the user can specify a set of headers to be included in the HTTP requests sent to the webhook URL.\n\n By default, the following headers will be sent in the HTTP request\n\n | **Header** | **Value** |\n |:-------------------------------:|-----------------------------|\n | Content-Type | application/json |\n\n #### Authentication mechanisms\n\n Netdata webhook integration supports 3 different authentication mechanisms:\n\n ##### Mutual TLS authentication (recommended)\n\n In mutual Transport Layer Security (mTLS) authentication, the client and the server authenticate each other using X.509 certificates. This ensures that the client is connecting to the intended server, and that the server is only accepting connections from authorized clients.\n\n This is the default authentication mechanism used if no other method is selected.\n\n To take advantage of mutual TLS, you can configure your server to verify Netdata's client certificate. In order to achieve this, the Netdata client sending the notification supports mutual TLS (mTLS) to identify itself with a client certificate that your server can validate.\n\n The steps to perform this validation are as follows:\n\n - Store Netdata CA certificate on a file in your disk. The content of this file should be:\n\n \n Netdata CA certificate
\n\n ```\n -----BEGIN CERTIFICATE-----\n MIIF0jCCA7qgAwIBAgIUDV0rS5jXsyNX33evHEQOwn9fPo0wDQYJKoZIhvcNAQEN\n BQAwgYAxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH\n Ew1TYW4gRnJhbmNpc2NvMRYwFAYDVQQKEw1OZXRkYXRhLCBJbmMuMRIwEAYDVQQL\n EwlDbG91ZCBTUkUxGDAWBgNVBAMTD05ldGRhdGEgUm9vdCBDQTAeFw0yMzAyMjIx\n MjQzMDBaFw0zMzAyMTkxMjQzMDBaMIGAMQswCQYDVQQGEwJVUzETMBEGA1UECBMK\n Q2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNjbzEWMBQGA1UEChMNTmV0\n ZGF0YSwgSW5jLjESMBAGA1UECxMJQ2xvdWQgU1JFMRgwFgYDVQQDEw9OZXRkYXRh\n IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwIg7z3R++\n ppQYYVVoMIDlhWO3qVTMsAQoJYEvVa6fqaImUBLW/k19LUaXgUJPohB7gBp1pkjs\n QfY5dBo8iFr7MDHtyiAFjcQV181sITTMBEJwp77R4slOXCvrreizhTt1gvf4S1zL\n qeHBYWEgH0RLrOAqD0jkOHwewVouO0k3Wf2lEbCq3qRk2HeDvkv0LR7sFC+dDms8\n fDHqb/htqhk+FAJELGRqLeaFq1Z5Eq1/9dk4SIeHgK5pdYqsjpBzOTmocgriw6he\n s7F3dOec1ZZdcBEAxOjbYt4e58JwuR81cWAVMmyot5JNCzYVL9e5Vc5n22qt2dmc\n Tzw2rLOPt9pT5bzbmyhcDuNg2Qj/5DySAQ+VQysx91BJRXyUimqE7DwQyLhpQU72\n jw29lf2RHdCPNmk8J1TNropmpz/aI7rkperPugdOmxzP55i48ECbvDF4Wtazi+l+\n 4kx7ieeLfEQgixy4lRUUkrgJlIDOGbw+d2Ag6LtOgwBiBYnDgYpvLucnx5cFupPY\n Cy3VlJ4EKUeQQSsz5kVmvotk9MED4sLx1As8V4e5ViwI5dCsRfKny7BeJ6XNPLnw\n PtMh1hbiqCcDmB1urCqXcMle4sRhKccReYOwkLjLLZ80A+MuJuIEAUUuEPCwywzU\n R7pagYsmvNgmwIIuJtB6mIJBShC7TpJG+wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC\n AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU9IbvOsPSUrpr8H2zSafYVQ9e\n Ft8wDQYJKoZIhvcNAQENBQADggIBABQ08aI31VKZs8jzg+y/QM5cvzXlVhcpkZsY\n 1VVBr0roSBw9Pld9SERrEHto8PVXbadRxeEs4sKivJBKubWAooQ6NTvEB9MHuGnZ\n VCU+N035Gq/mhBZgtIs/Zz33jTB2ju3G4Gm9VTZbVqd0OUxFs41Iqvi0HStC3/Io\n rKi7crubmp5f2cNW1HrS++ScbTM+VaKVgQ2Tg5jOjou8wtA+204iYXlFpw9Q0qnP\n qq6ix7TfLLeRVp6mauwPsAJUgHZluz7yuv3r7TBdukU4ZKUmfAGIPSebtB3EzXfH\n 7Y326xzv0hEpjvDHLy6+yFfTdBSrKPsMHgc9bsf88dnypNYL8TUiEHlcTgCGU8ts\n ud8sWN2M5FEWbHPNYRVfH3xgY2iOYZzn0i+PVyGryOPuzkRHTxDLPIGEWE5susM4\n X4bnNJyKH1AMkBCErR34CLXtAe2ngJlV/V3D4I8CQFJdQkn9tuznohUU/j80xvPH\n FOcDGQYmh4m2aIJtlNVP6+/92Siugb5y7HfslyRK94+bZBg2D86TcCJWaaZOFUrR\n Y3WniYXsqM5/JI4OOzu7dpjtkJUYvwtg7Qb5jmm8Ilf5rQZJhuvsygzX6+WM079y\n nsjoQAm6OwpTN5362vE9SYu1twz7KdzBlUkDhePEOgQkWfLHBJWwB+PvB1j/cUA3\n 5zrbwvQf\n -----END CERTIFICATE-----\n ```\n \n\n - Enable client certificate validation on the web server that is doing the TLS termination. Below we show you how to perform this configuration in `NGINX` and `Apache`\n\n **NGINX**\n\n ```bash\n server {\n listen 443 ssl default_server;\n\n # ... existing SSL configuration for server authentication ...\n ssl_verify_client on;\n ssl_client_certificate /path/to/Netdata_CA.pem;\n\n location / {\n if ($ssl_client_s_dn !~ \"CN=app.netdata.cloud\") {\n return 403;\n }\n # ... existing location configuration ...\n }\n }\n ```\n\n **Apache**\n\n ```bash\n Listen 443\n \n # ... existing SSL configuration for server authentication ...\n SSLVerifyClient require\n SSLCACertificateFile \"/path/to/Netdata_CA.pem\"\n \n \n Require expr \"%{SSL_CLIENT_S_DN_CN} == 'app.netdata.cloud'\"\n # ... existing directory configuration ...\n \n ```\n\n ##### Basic authentication\n\n In basic authorization, the client sends a request with an Authorization header that includes a base64-encoded string in the format username:password. The server then uses this information to authenticate the client. If this authentication method is selected, the user can set the user and password that will be used when connecting to the destination service.\n\n ##### Bearer token authentication\n\n In bearer token authentication, the client sends a request with an Authorization header that includes a bearer token. The server then uses this token to authenticate the client. Bearer tokens are typically generated by an authentication service, and are passed to the client after a successful authentication. If this method is selected, the user can set the token to be used for connecting to the destination service.\n\n ###### Challenge secret\n\n To validate that you has ownership of the web application that will receive the webhook events, we are using a challenge response check mechanism.\n\n This mechanism works as follows:\n\n - The challenge secret parameter that you provide is a shared secret between you and Netdata only.\n - On your request for creating a new Webhook integration, we will make a GET request to the url of the webhook, adding a query parameter `crc_token`, consisting of a random string.\n - You will receive this request on your application and it must construct an encrypted response, consisting of a base64-encoded HMAC SHA-256 hash created from the crc_token and the shared secret. The response will be in the format:\n\n ```json\n {\n \"response_token\": \"sha256=9GKoHJYmcHIkhD+C182QWN79YBd+D+Vkj4snmZrfNi4=\"\n }\n ```\n\n - We will compare your application's response with the hash that we will generate using the challenge secret, and if they are the same, the integration creation will succeed.\n\n We will do this validation everytime you update your integration configuration.\n\n - Response requirements:\n - A base64 encoded HMAC SHA-256 hash created from the crc_token and the shared secret.\n - Valid response_token and JSON format.\n - Latency less than 5 seconds.\n - 200 HTTP response code.\n\n **Example response token generation in Python:**\n\n Here you can see how to define a handler for a Flask application in python 3:\n\n ```python\n import base64\n import hashlib\n import hmac\n import json\n\n key ='YOUR_CHALLENGE_SECRET'\n\n @app.route('/webhooks/netdata')\n def webhook_challenge():\n token = request.args.get('crc_token').encode('ascii')\n\n # creates HMAC SHA-256 hash from incomming token and your consumer secret\n sha256_hash_digest = hmac.new(key.encode(),\n msg=token,\n digestmod=hashlib.sha256).digest()\n\n # construct response data with base64 encoded hash\n response = {\n 'response_token': 'sha256=' + base64.b64encode(sha256_hash_digest).decode('ascii')\n }\n\n # returns properly formatted json response\n return json.dumps(response)\n ```\n\n", "integration_type": "notification", "troubleshooting": "", "edit_link": "https://github.com/netdata/netdata/blob/master/integrations/cloud-notifications/metadata.yaml"}, {"id": "notify-custom", "meta": {"name": "Custom", "link": "", "categories": ["notify.agent"], "icon_filename": "custom.png"}, "keywords": ["custom"], "overview": "# Custom\n\nNetdata Agent's alert notification feature allows you to send custom notifications to any endpoint you choose.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_CUSTOM | Set `SEND_CUSTOM` to YES | | True |\n| DEFAULT_RECIPIENT_CUSTOM | This value is dependent on how you handle the `${to}` variable inside the `custom_sender()` function. | | True |\n| custom_sender() | You can look at the other senders in `/usr/libexec/netdata/plugins.d/alarm-notify.sh` for examples of how to modify the function in this configuration file. | | False |\n\n##### DEFAULT_RECIPIENT_CUSTOM\n\nAll roles will default to this variable if left unconfigured. You can edit `DEFAULT_RECIPIENT_CUSTOM` with the variable you want, in the following entries at the bottom of the same file:\n```\nrole_recipients_custom[sysadmin]=\"systems\"\nrole_recipients_custom[domainadmin]=\"domains\"\nrole_recipients_custom[dba]=\"databases systems\"\nrole_recipients_custom[webmaster]=\"marketing development\"\nrole_recipients_custom[proxyadmin]=\"proxy-admin\"\nrole_recipients_custom[sitemgr]=\"sites\"\n```\n\n\n##### custom_sender()\n\nThe following is a sample custom_sender() function in health_alarm_notify.conf, to send an SMS via an imaginary HTTPS endpoint to the SMS gateway:\n```\ncustom_sender() {\n # example human readable SMS\n local msg=\"${host} ${status_message}: ${alarm} ${raised_for}\"\n\n # limit it to 160 characters and encode it for use in a URL\n urlencode \"${msg:0:160}\" >/dev/null; msg=\"${REPLY}\"\n\n # a space separated list of the recipients to send alarms to\n to=\"${1}\"\n\n for phone in ${to}; do\n httpcode=$(docurl -X POST \\\n --data-urlencode \"From=XXX\" \\\n --data-urlencode \"To=${phone}\" \\\n --data-urlencode \"Body=${msg}\" \\\n -u \"${accountsid}:${accounttoken}\" \\\n https://domain.website.com/)\n\n if [ \"${httpcode}\" = \"200\" ]; then\n info \"sent custom notification ${msg} to ${phone}\"\n sent=$((sent + 1))\n else\n error \"failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}.\"\n fi\n done\n}\n```\n\nThe supported variables that you can use for the function's `msg` variable are:\n\n| Variable name | Description |\n|:---------------------------:|:---------------------------------------------------------------------------------|\n| `${alarm}` | Like \"name = value units\" |\n| `${status_message}` | Like \"needs attention\", \"recovered\", \"is critical\" |\n| `${severity}` | Like \"Escalated to CRITICAL\", \"Recovered from WARNING\" |\n| `${raised_for}` | Like \"(alarm was raised for 10 minutes)\" |\n| `${host}` | The host generated this event |\n| `${url_host}` | Same as ${host} but URL encoded |\n| `${unique_id}` | The unique id of this event |\n| `${alarm_id}` | The unique id of the alarm that generated this event |\n| `${event_id}` | The incremental id of the event, for this alarm id |\n| `${when}` | The timestamp this event occurred |\n| `${name}` | The name of the alarm, as given in netdata health.d entries |\n| `${url_name}` | Same as ${name} but URL encoded |\n| `${chart}` | The name of the chart (type.id) |\n| `${url_chart}` | Same as ${chart} but URL encoded |\n| `${family}` | The family of the chart |\n| `${url_family}` | Same as ${family} but URL encoded |\n| `${status}` | The current status : REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${old_status}` | The previous status: REMOVED, UNINITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL |\n| `${value}` | The current value of the alarm |\n| `${old_value}` | The previous value of the alarm |\n| `${src}` | The line number and file the alarm has been configured |\n| `${duration}` | The duration in seconds of the previous alarm state |\n| `${duration_txt}` | Same as ${duration} for humans |\n| `${non_clear_duration}` | The total duration in seconds this is/was non-clear |\n| `${non_clear_duration_txt}` | Same as ${non_clear_duration} for humans |\n| `${units}` | The units of the value |\n| `${info}` | A short description of the alarm |\n| `${value_string}` | Friendly value (with units) |\n| `${old_value_string}` | Friendly old value (with units) |\n| `${image}` | The URL of an image to represent the status of the alarm |\n| `${color}` | A color in AABBCC format for the alarm |\n| `${goto_url}` | The URL the user can click to see the netdata dashboard |\n| `${calc_expression}` | The expression evaluated to provide the value for the alarm |\n| `${calc_param_values}` | The value of the variables in the evaluated expression |\n| `${total_warnings}` | The total number of alarms in WARNING state on the host |\n| `${total_critical}` | The total number of alarms in CRITICAL state on the host |\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# custom notifications\n\nSEND_CUSTOM=\"YES\"\nDEFAULT_RECIPIENT_CUSTOM=\"\"\n\n# The custom_sender() is a custom function to do whatever you need to do\ncustom_sender() {\n # example human readable SMS\n local msg=\"${host} ${status_message}: ${alarm} ${raised_for}\"\n\n # limit it to 160 characters and encode it for use in a URL\n urlencode \"${msg:0:160}\" >/dev/null; msg=\"${REPLY}\"\n\n # a space separated list of the recipients to send alarms to\n to=\"${1}\"\n\n for phone in ${to}; do\n httpcode=$(docurl -X POST \\\n --data-urlencode \"From=XXX\" \\\n --data-urlencode \"To=${phone}\" \\\n --data-urlencode \"Body=${msg}\" \\\n -u \"${accountsid}:${accounttoken}\" \\\n https://domain.website.com/)\n\n if [ \"${httpcode}\" = \"200\" ]; then\n info \"sent custom notification ${msg} to ${phone}\"\n sent=$((sent + 1))\n else\n error \"failed to send custom notification ${msg} to ${phone} with HTTP error code ${httpcode}.\"\n fi\n done\n}\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/custom/metadata.yaml"}, {"id": "notify-discord", "meta": {"name": "Discord", "link": "https://discord.com/", "categories": ["notify.agent"], "icon_filename": "discord.png"}, "keywords": ["Discord"], "overview": "# Discord\n\nSend notifications to Discord using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by Discord. Create a webhook by following the official [Discord documentation](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks). You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).\n- One or more Discord channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_DISCORD | Set `SEND_DISCORD` to YES | | True |\n| DISCORD_WEBHOOK_URL | set `DISCORD_WEBHOOK_URL` to your webhook URL. | | True |\n| DEFAULT_RECIPIENT_DISCORD | Set `DEFAULT_RECIPIENT_DISCORD` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`. | | True |\n\n##### DEFAULT_RECIPIENT_DISCORD\n\nAll roles will default to this variable if left unconfigured.\nYou can then have different channels per role, by editing `DEFAULT_RECIPIENT_DISCORD` with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_discord[sysadmin]=\"systems\"\nrole_recipients_discord[domainadmin]=\"domains\"\nrole_recipients_discord[dba]=\"databases systems\"\nrole_recipients_discord[webmaster]=\"marketing development\"\nrole_recipients_discord[proxyadmin]=\"proxy-admin\"\nrole_recipients_discord[sitemgr]=\"sites\"\n```\n\nThe values you provide should already exist as Discord channels in your server.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# discord (discordapp.com) global notification options\n\nSEND_DISCORD=\"YES\"\nDISCORD_WEBHOOK_URL=\"https://discord.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\nDEFAULT_RECIPIENT_DISCORD=\"alerts\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/discord/metadata.yaml"}, {"id": "notify-dynatrace", "meta": {"name": "Dynatrace", "link": "https://dynatrace.com", "categories": ["notify.agent"], "icon_filename": "dynatrace.svg"}, "keywords": ["Dynatrace"], "overview": "# Dynatrace\n\nDynatrace allows you to receive notifications using their Events REST API. See the [Dynatrace documentation](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event) about POSTing an event in the Events API for more details.\nYou can send notifications to Dynatrace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A Dynatrace Server. You can use the same on all your Netdata servers but make sure the server is network visible from your Netdata hosts. The Dynatrace server should be with protocol prefixed (http:// or https://), for example: https://monitor.example.com.\n- An API Token. Generate a secure access API token that enables access to your Dynatrace monitoring data via the REST-based API. See [Dynatrace API - Authentication](https://www.dynatrace.com/support/help/extend-dynatrace/dynatrace-api/basics/dynatrace-api-authentication/) for more details.\n- An API Space. This is the URL part of the page you have access in order to generate the API Token. For example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.\n- A Server Tag. To generate one on your Dynatrace Server, go to Settings --> Tags --> Manually applied tags and create the Tag. The Netdata alarm is sent as a Dynatrace Event to be correlated with all those hosts tagged with this Tag you have created.\n- Terminal access to the Agent you wish to configure\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_DYNATRACE | Set `SEND_DYNATRACE` to YES | | True |\n| DYNATRACE_SERVER | Set `DYNATRACE_SERVER` to the Dynatrace server with the protocol prefix, for example `https://monitor.example.com`. | | True |\n| DYNATRACE_TOKEN | Set `DYNATRACE_TOKEN` to your Dynatrace API authentication token | | True |\n| DYNATRACE_SPACE | Set `DYNATRACE_SPACE` to the API Space, it is the URL part of the page you have access in order to generate the API Token. | | True |\n| DYNATRACE_TAG_VALUE | Set `DYNATRACE_TAG_VALUE` to your Dynatrace Server Tag. | | True |\n| DYNATRACE_ANNOTATION_TYPE | `DYNATRACE_ANNOTATION_TYPE` can be left to its default value Netdata Alarm, but you can change it to better fit your needs. | | False |\n| DYNATRACE_EVENT | Set `DYNATRACE_EVENT` to the Dynatrace eventType you want. | | False |\n\n##### DYNATRACE_SPACE\n\nFor example, the URL for a generated API token might look like: https://monitor.illumineit.com/e/2a93fe0e-4cd5-469a-9d0d-1a064235cfce/#settings/integration/apikeys;gf=all In that case, the Space is 2a93fe0e-4cd5-469a-9d0d-1a064235cfce.\n\n\n##### DYNATRACE_EVENT\n\n`AVAILABILITY_EVENT`, `CUSTOM_ALERT`, `CUSTOM_ANNOTATION`, `CUSTOM_CONFIGURATION`, `CUSTOM_DEPLOYMENT`, `CUSTOM_INFO`, `ERROR_EVENT`,\n`MARKED_FOR_TERMINATION`, `PERFORMANCE_EVENT`, `RESOURCE_CONTENTION_EVENT`.\nYou can read more [here](https://www.dynatrace.com/support/help/dynatrace-api/environment-api/events-v2/post-event#request-body-objects).\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Dynatrace global notification options\n\nSEND_DYNATRACE=\"YES\"\nDYNATRACE_SERVER=\"https://monitor.example.com\"\nDYNATRACE_TOKEN=\"XXXXXXX\"\nDYNATRACE_SPACE=\"2a93fe0e-4cd5-469a-9d0d-1a064235cfce\"\nDYNATRACE_TAG_VALUE=\"SERVERTAG\"\nDYNATRACE_ANNOTATION_TYPE=\"Netdata Alert\"\nDYNATRACE_EVENT=\"AVAILABILITY_EVENT\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/dynatrace/metadata.yaml"}, {"id": "notify-email", "meta": {"name": "Email", "link": "", "categories": ["notify.agent"], "icon_filename": "email.png"}, "keywords": ["email"], "overview": "# Email\n\nSend notifications via Email using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A working sendmail command is required for email alerts to work. Almost all MTAs provide a sendmail interface. Netdata sends all emails as user netdata, so make sure your sendmail works for local users.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| EMAIL_SENDER | You can change `EMAIL_SENDER` to the email address sending the notifications. | | False |\n| SEND_EMAIL | Set `SEND_EMAIL` to YES | | True |\n| DEFAULT_RECIPIENT_EMAIL | Set `DEFAULT_RECIPIENT_EMAIL` to the email address you want the email to be sent by default. You can define multiple email addresses like this: `alarms@example.com` `systems@example.com`. | | True |\n\n##### DEFAULT_RECIPIENT_EMAIL\n\nAll roles will default to this variable if left unconfigured.\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_email[sysadmin]=\"systems@example.com\"\nrole_recipients_email[domainadmin]=\"domains@example.com\"\nrole_recipients_email[dba]=\"databases@example.com systems@example.com\"\nrole_recipients_email[webmaster]=\"marketing@example.com development@example.com\"\nrole_recipients_email[proxyadmin]=\"proxy-admin@example.com\"\nrole_recipients_email[sitemgr]=\"sites@example.com\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# email global notification options\n\nEMAIL_SENDER=\"example@domain.com\"\nSEND_EMAIL=\"YES\"\nDEFAULT_RECIPIENT_EMAIL=\"recipient@example.com\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/email/metadata.yaml"}, {"id": "notify-flock", "meta": {"name": "Flock", "link": "https://support.flock.com/", "categories": ["notify.agent"], "icon_filename": "flock.png"}, "keywords": ["Flock"], "overview": "# Flock\n\nSend notifications to Flock using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by flock.com. You can use the same on all your Netdata servers (or you can have multiple if you like). Read more about flock webhooks and how to get one [here](https://admin.flock.com/webhooks).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_FLOCK | Set `SEND_FLOCK` to YES | | True |\n| FLOCK_WEBHOOK_URL | set `FLOCK_WEBHOOK_URL` to your webhook URL. | | True |\n| DEFAULT_RECIPIENT_FLOCK | Set `DEFAULT_RECIPIENT_FLOCK` to the Flock channel you want the alert notifications to be sent to. All roles will default to this variable if left unconfigured. | | True |\n\n##### DEFAULT_RECIPIENT_FLOCK\n\nYou can have different channels per role, by editing DEFAULT_RECIPIENT_FLOCK with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_flock[sysadmin]=\"systems\"\nrole_recipients_flock[domainadmin]=\"domains\"\nrole_recipients_flock[dba]=\"databases systems\"\nrole_recipients_flock[webmaster]=\"marketing development\"\nrole_recipients_flock[proxyadmin]=\"proxy-admin\"\nrole_recipients_flock[sitemgr]=\"sites\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# flock (flock.com) global notification options\n\nSEND_FLOCK=\"YES\"\nFLOCK_WEBHOOK_URL=\"https://api.flock.com/hooks/sendMessage/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\nDEFAULT_RECIPIENT_FLOCK=\"alarms\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/flock/metadata.yaml"}, {"id": "notify-gotify", "meta": {"name": "Gotify", "link": "https://gotify.net/", "categories": ["notify.agent"], "icon_filename": "gotify.png"}, "keywords": ["gotify"], "overview": "# Gotify\n\n[Gotify](https://gotify.net/) is a self-hosted push notification service created for sending and receiving messages in real time.\nYou can send alerts to your Gotify instance using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- An application token. You can generate a new token in the Gotify Web UI.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_GOTIFY | Set `SEND_GOTIFY` to YES | | True |\n| GOTIFY_APP_TOKEN | set `GOTIFY_APP_TOKEN` to the app token you generated. | | True |\n| GOTIFY_APP_URL | Set `GOTIFY_APP_URL` to point to your Gotify instance, for example `https://push.example.domain/` | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_GOTIFY=\"YES\"\nGOTIFY_APP_TOKEN=\"XXXXXXXXXXXXXXX\"\nGOTIFY_APP_URL=\"https://push.example.domain/\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/gotify/metadata.yaml"}, {"id": "notify-irc", "meta": {"name": "IRC", "link": "", "categories": ["notify.agent"], "icon_filename": "irc.png"}, "keywords": ["IRC"], "overview": "# IRC\n\nSend notifications to IRC using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The `nc` utility. You can set the path to it, or Netdata will search for it in your system `$PATH`.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| nc path | Set the path for nc, otherwise Netdata will search for it in your system $PATH | | True |\n| SEND_IRC | Set `SEND_IRC` YES. | | True |\n| IRC_NETWORK | Set `IRC_NETWORK` to the IRC network which your preferred channels belong to. | | True |\n| IRC_PORT | Set `IRC_PORT` to the IRC port to which a connection will occur. | | False |\n| IRC_NICKNAME | Set `IRC_NICKNAME` to the IRC nickname which is required to send the notification. It must not be an already registered name as the connection's MODE is defined as a guest. | | True |\n| IRC_REALNAME | Set `IRC_REALNAME` to the IRC realname which is required in order to make the connection. | | True |\n| DEFAULT_RECIPIENT_IRC | You can have different channels per role, by editing `DEFAULT_RECIPIENT_IRC` with the channel you want | | True |\n\n##### nc path\n\n```sh\n#------------------------------------------------------------------------------\n# external commands\n#\n# The full path of the nc command.\n# If empty, the system $PATH will be searched for it.\n# If not found, irc notifications will be silently disabled.\nnc=\"/usr/bin/nc\"\n```\n\n\n##### DEFAULT_RECIPIENT_IRC\n\nThe `DEFAULT_RECIPIENT_IRC` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_irc[sysadmin]=\"#systems\"\nrole_recipients_irc[domainadmin]=\"#domains\"\nrole_recipients_irc[dba]=\"#databases #systems\"\nrole_recipients_irc[webmaster]=\"#marketing #development\"\nrole_recipients_irc[proxyadmin]=\"#proxy-admin\"\nrole_recipients_irc[sitemgr]=\"#sites\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# irc notification options\n#\nSEND_IRC=\"YES\"\nDEFAULT_RECIPIENT_IRC=\"#system-alarms\"\nIRC_NETWORK=\"irc.freenode.net\"\nIRC_NICKNAME=\"netdata-alarm-user\"\nIRC_REALNAME=\"netdata-user\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/irc/metadata.yaml"}, {"id": "notify-kavenegar", "meta": {"name": "Kavenegar", "link": "https://kavenegar.com/", "categories": ["notify.agent"], "icon_filename": "kavenegar.png"}, "keywords": ["Kavenegar"], "overview": "# Kavenegar\n\n[Kavenegar](https://kavenegar.com/) as service for software developers, based in Iran, provides send and receive SMS, calling voice by using its APIs.\nYou can send notifications to Kavenegar using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The APIKEY and Sender from http://panel.kavenegar.com/client/setting/account\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_KAVENEGAR | Set `SEND_KAVENEGAR` to YES | | True |\n| KAVENEGAR_API_KEY | Set `KAVENEGAR_API_KEY` to your API key. | | True |\n| KAVENEGAR_SENDER | Set `KAVENEGAR_SENDER` to the value of your Sender. | | True |\n| DEFAULT_RECIPIENT_KAVENEGAR | Set `DEFAULT_RECIPIENT_KAVENEGAR` to the SMS recipient you want the alert notifications to be sent to. You can define multiple recipients like this: 09155555555 09177777777. | | True |\n\n##### DEFAULT_RECIPIENT_KAVENEGAR\n\nAll roles will default to this variable if lest unconfigured.\n\nYou can then have different SMS recipients per role, by editing `DEFAULT_RECIPIENT_KAVENEGAR` with the SMS recipients you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_kavenegar[sysadmin]=\"09100000000\"\nrole_recipients_kavenegar[domainadmin]=\"09111111111\"\nrole_recipients_kavenegar[dba]=\"0922222222\"\nrole_recipients_kavenegar[webmaster]=\"0933333333\"\nrole_recipients_kavenegar[proxyadmin]=\"0944444444\"\nrole_recipients_kavenegar[sitemgr]=\"0955555555\"\n```\n\nThe values you provide should be defined as environments in `/etc/alertad.conf` with `ALLOWED_ENVIRONMENTS` option.\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Kavenegar (Kavenegar.com) SMS options\n\nSEND_KAVENEGAR=\"YES\"\nKAVENEGAR_API_KEY=\"XXXXXXXXXXXX\"\nKAVENEGAR_SENDER=\"YYYYYYYY\"\nDEFAULT_RECIPIENT_KAVENEGAR=\"0912345678\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/kavenegar/metadata.yaml"}, {"id": "notify-matrix", "meta": {"name": "Matrix", "link": "https://spec.matrix.org/unstable/push-gateway-api/", "categories": ["notify.agent"], "icon_filename": "matrix.svg"}, "keywords": ["Matrix"], "overview": "# Matrix\n\nSend notifications to Matrix network rooms using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The url of the homeserver (`https://homeserver:port`).\n- Credentials for connecting to the homeserver, in the form of a valid access token for your account (or for a dedicated notification account). These tokens usually don't expire.\n- The room ids that you want to sent the notification to.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MATRIX | Set `SEND_MATRIX` to YES | | True |\n| MATRIX_HOMESERVER | set `MATRIX_HOMESERVER` to the URL of the Matrix homeserver. | | True |\n| MATRIX_ACCESSTOKEN | Set `MATRIX_ACCESSTOKEN` to the access token from your Matrix account. | | True |\n| DEFAULT_RECIPIENT_MATRIX | Set `DEFAULT_RECIPIENT_MATRIX` to the rooms you want the alert notifications to be sent to. The format is `!roomid:homeservername`. | | True |\n\n##### MATRIX_ACCESSTOKEN\n\nTo obtain the access token, you can use the following curl command:\n```\ncurl -XPOST -d '{\"type\":\"m.login.password\", \"user\":\"example\", \"password\":\"wordpass\"}' \"https://homeserver:8448/_matrix/client/r0/login\"\n```\n\n\n##### DEFAULT_RECIPIENT_MATRIX\n\nThe room ids are unique identifiers and can be obtained from the room settings in a Matrix client (e.g. Riot).\n\nYou can define multiple rooms like this: `!roomid1:homeservername` `!roomid2:homeservername`.\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different rooms per role, by editing `DEFAULT_RECIPIENT_MATRIX` with the `!roomid:homeservername` you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_matrix[sysadmin]=\"!roomid1:homeservername\"\nrole_recipients_matrix[domainadmin]=\"!roomid2:homeservername\"\nrole_recipients_matrix[dba]=\"!roomid3:homeservername\"\nrole_recipients_matrix[webmaster]=\"!roomid4:homeservername\"\nrole_recipients_matrix[proxyadmin]=\"!roomid5:homeservername\"\nrole_recipients_matrix[sitemgr]=\"!roomid6:homeservername\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Matrix notifications\n\nSEND_MATRIX=\"YES\"\nMATRIX_HOMESERVER=\"https://matrix.org:8448\"\nMATRIX_ACCESSTOKEN=\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\nDEFAULT_RECIPIENT_MATRIX=\"!XXXXXXXXXXXX:matrix.org\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/matrix/metadata.yaml"}, {"id": "notify-messagebird", "meta": {"name": "MessageBird", "link": "https://messagebird.com/", "categories": ["notify.agent"], "icon_filename": "messagebird.svg"}, "keywords": ["MessageBird"], "overview": "# MessageBird\n\nSend notifications to MessageBird using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- An access key under 'API ACCESS (REST)' (you will want a live key), you can read more [here](https://developers.messagebird.com/quickstarts/sms/test-credits-api-keys/).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MESSAGEBIRD | Set `SEND_MESSAGEBIRD` to YES | | True |\n| MESSAGEBIRD_ACCESS_KEY | Set `MESSAGEBIRD_ACCESS_KEY` to your API key. | | True |\n| MESSAGEBIRD_NUMBER | Set `MESSAGEBIRD_NUMBER` to the MessageBird number you want to use for the alert. | | True |\n| DEFAULT_RECIPIENT_MESSAGEBIRD | Set `DEFAULT_RECIPIENT_MESSAGEBIRD` to the number you want the alert notification to be sent as an SMS. You can define multiple recipients like this: +15555555555 +17777777777. | | True |\n\n##### DEFAULT_RECIPIENT_MESSAGEBIRD\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different recipients per role, by editing `DEFAULT_RECIPIENT_MESSAGEBIRD` with the number you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_messagebird[sysadmin]=\"+15555555555\"\nrole_recipients_messagebird[domainadmin]=\"+15555555556\"\nrole_recipients_messagebird[dba]=\"+15555555557\"\nrole_recipients_messagebird[webmaster]=\"+15555555558\"\nrole_recipients_messagebird[proxyadmin]=\"+15555555559\"\nrole_recipients_messagebird[sitemgr]=\"+15555555550\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Messagebird (messagebird.com) SMS options\n\nSEND_MESSAGEBIRD=\"YES\"\nMESSAGEBIRD_ACCESS_KEY=\"XXXXXXXX\"\nMESSAGEBIRD_NUMBER=\"XXXXXXX\"\nDEFAULT_RECIPIENT_MESSAGEBIRD=\"+15555555555\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/messagebird/metadata.yaml"}, {"id": "notify-ntfy", "meta": {"name": "ntfy", "link": "https://ntfy.sh/", "categories": ["notify.agent"], "icon_filename": "ntfy.svg"}, "keywords": ["ntfy"], "overview": "# ntfy\n\n[ntfy](https://ntfy.sh/) (pronounce: notify) is a simple HTTP-based [pub-sub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) notification service. It allows you to send notifications to your phone or desktop via scripts from any computer, entirely without signup, cost or setup. It's also [open source](https://github.com/binwiederhier/ntfy) if you want to run your own server.\nYou can send alerts to an ntfy server using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- (Optional) A [self-hosted ntfy server](https://docs.ntfy.sh/faq/#can-i-self-host-it), in case you don't want to use https://ntfy.sh\n- A new [topic](https://ntfy.sh/#subscribe) for the notifications to be published to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_NTFY | Set `SEND_NTFY` to YES | | True |\n| DEFAULT_RECIPIENT_NTFY | URL formed by the server-topic combination you want the alert notifications to be sent to. Unless hosting your own server, the server should always be set to https://ntfy.sh. | | True |\n\n##### DEFAULT_RECIPIENT_NTFY\n\nYou can define multiple recipient URLs like this: `https://SERVER1/TOPIC1` `https://SERVER2/TOPIC2`\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different servers and/or topics per role, by editing DEFAULT_RECIPIENT_NTFY with the server-topic combination you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_ntfy[sysadmin]=\"https://SERVER1/TOPIC1\"\nrole_recipients_ntfy[domainadmin]=\"https://SERVER2/TOPIC2\"\nrole_recipients_ntfy[dba]=\"https://SERVER3/TOPIC3\"\nrole_recipients_ntfy[webmaster]=\"https://SERVER4/TOPIC4\"\nrole_recipients_ntfy[proxyadmin]=\"https://SERVER5/TOPIC5\"\nrole_recipients_ntfy[sitemgr]=\"https://SERVER6/TOPIC6\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_NTFY=\"YES\"\nDEFAULT_RECIPIENT_NTFY=\"https://ntfy.sh/netdata-X7seHg7d3Tw9zGOk https://ntfy.sh/netdata-oIPm4IK1IlUtlA30\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/ntfy/metadata.yaml"}, {"id": "notify-opsgenie", "meta": {"name": "OpsGenie", "link": "https://www.atlassian.com/software/opsgenie", "categories": ["notify.agent"], "icon_filename": "opsgenie.png"}, "keywords": ["OpsGenie"], "overview": "# OpsGenie\n\nOpsgenie is an alerting and incident response tool. It is designed to group and filter alarms, build custom routing rules for on-call teams, and correlate deployments and commits to incidents.\nYou can send notifications to Opsgenie using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- An Opsgenie integration. You can create an [integration](https://docs.opsgenie.com/docs/api-integration) in the [Opsgenie](https://www.atlassian.com/software/opsgenie) dashboard.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_OPSGENIE | Set `SEND_OPSGENIE` to YES | | True |\n| OPSGENIE_API_KEY | Set `OPSGENIE_API_KEY` to your API key. | | True |\n| OPSGENIE_API_URL | Set `OPSGENIE_API_URL` to the corresponding URL if required, for example there are region-specific API URLs such as `https://eu.api.opsgenie.com`. | | False |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\nSEND_OPSGENIE=\"YES\"\nOPSGENIE_API_KEY=\"11111111-2222-3333-4444-555555555555\"\nOPSGENIE_API_URL=\"\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/opsgenie/metadata.yaml"}, {"id": "notify-pagerduty", "meta": {"name": "PagerDuty", "link": "https://www.pagerduty.com/", "categories": ["notify.agent"], "icon_filename": "pagerduty.png"}, "keywords": ["PagerDuty"], "overview": "# PagerDuty\n\nPagerDuty is an enterprise incident resolution service that integrates with ITOps and DevOps monitoring stacks to improve operational reliability and agility. From enriching and aggregating events to correlating them into incidents, PagerDuty streamlines the incident management process by reducing alert noise and resolution times.\nYou can send notifications to PagerDuty using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- An installation of the [PagerDuty](https://www.pagerduty.com/docs/guides/agent-install-guide/) agent on the node running the Netdata Agent\n- A PagerDuty Generic API service using either the `Events API v2` or `Events API v1`\n- [Add a new service](https://support.pagerduty.com/docs/services-and-integrations#section-configuring-services-and-integrations) to PagerDuty. Click Use our API directly and select either `Events API v2` or `Events API v1`. Once you finish creating the service, click on the Integrations tab to find your Integration Key.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PD | Set `SEND_PD` to YES | | True |\n| DEFAULT_RECIPIENT_PD | Set `DEFAULT_RECIPIENT_PD` to the PagerDuty service key you want the alert notifications to be sent to. You can define multiple service keys like this: `pd_service_key_1` `pd_service_key_2`. | | True |\n\n##### DEFAULT_RECIPIENT_PD\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PD` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pd[sysadmin]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxa\"\nrole_recipients_pd[domainadmin]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxb\"\nrole_recipients_pd[dba]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxc\"\nrole_recipients_pd[webmaster]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxd\"\nrole_recipients_pd[proxyadmin]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxe\"\nrole_recipients_pd[sitemgr]=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pagerduty.com notification options\n\nSEND_PD=\"YES\"\nDEFAULT_RECIPIENT_PD=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\nUSE_PD_VERSION=\"2\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/pagerduty/metadata.yaml"}, {"id": "notify-prowl", "meta": {"name": "Prowl", "link": "https://www.prowlapp.com/", "categories": ["notify.agent"], "icon_filename": "prowl.png"}, "keywords": ["Prowl"], "overview": "# Prowl\n\nSend notifications to Prowl using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n\n## Limitations\n\n- Because of how Netdata integrates with Prowl, there is a hard limit of at most 1000 notifications per hour (starting from the first notification sent). Any alerts beyond the first thousand in an hour will be dropped.\n- Warning messages will be sent with the 'High' priority, critical messages will be sent with the 'Emergency' priority, and all other messages will be sent with the normal priority. Opening the notification's associated URL will take you to the Netdata dashboard of the system that issued the alert, directly to the chart that it triggered on.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A Prowl API key, which can be requested through the Prowl website after registering\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PROWL | Set `SEND_PROWL` to YES | | True |\n| DEFAULT_RECIPIENT_PROWL | Set `DEFAULT_RECIPIENT_PROWL` to the Prowl API key you want the alert notifications to be sent to. You can define multiple API keys like this: `APIKEY1`, `APIKEY2`. | | True |\n\n##### DEFAULT_RECIPIENT_PROWL\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PROWL` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_prowl[sysadmin]=\"AAAAAAAA\"\nrole_recipients_prowl[domainadmin]=\"BBBBBBBBB\"\nrole_recipients_prowl[dba]=\"CCCCCCCCC\"\nrole_recipients_prowl[webmaster]=\"DDDDDDDDDD\"\nrole_recipients_prowl[proxyadmin]=\"EEEEEEEEEE\"\nrole_recipients_prowl[sitemgr]=\"FFFFFFFFFF\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# iOS Push Notifications\n\nSEND_PROWL=\"YES\"\nDEFAULT_RECIPIENT_PROWL=\"XXXXXXXXXX\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/prowl/metadata.yaml"}, {"id": "notify-pushbullet", "meta": {"name": "Pushbullet", "link": "https://www.pushbullet.com/", "categories": ["notify.agent"], "icon_filename": "pushbullet.png"}, "keywords": ["Pushbullet"], "overview": "# Pushbullet\n\nSend notifications to Pushbullet using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A Pushbullet access token that can be created in your [account settings](https://www.pushbullet.com/#settings/account).\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| Send_PUSHBULLET | Set `Send_PUSHBULLET` to YES | | True |\n| PUSHBULLET_ACCESS_TOKEN | set `PUSHBULLET_ACCESS_TOKEN` to the access token you generated. | | True |\n| DEFAULT_RECIPIENT_PUSHBULLET | Set `DEFAULT_RECIPIENT_PUSHBULLET` to the email (e.g. `example@domain.com`) or the channel tag (e.g. `#channel`) you want the alert notifications to be sent to. | | True |\n\n##### DEFAULT_RECIPIENT_PUSHBULLET\n\nYou can define multiple entries like this: user1@email.com user2@email.com.\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PUSHBULLET` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pushbullet[sysadmin]=\"user1@email.com\"\nrole_recipients_pushbullet[domainadmin]=\"user2@mail.com\"\nrole_recipients_pushbullet[dba]=\"#channel1\"\nrole_recipients_pushbullet[webmaster]=\"#channel2\"\nrole_recipients_pushbullet[proxyadmin]=\"user3@mail.com\"\nrole_recipients_pushbullet[sitemgr]=\"user4@mail.com\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pushbullet (pushbullet.com) push notification options\n\nSEND_PUSHBULLET=\"YES\"\nPUSHBULLET_ACCESS_TOKEN=\"XXXXXXXXX\"\nDEFAULT_RECIPIENT_PUSHBULLET=\"admin1@example.com admin3@somemail.com #examplechanneltag #anotherchanneltag\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/pushbullet/metadata.yaml"}, {"id": "notify-pushover", "meta": {"name": "PushOver", "link": "https://pushover.net/", "categories": ["notify.agent"], "icon_filename": "pushover.png"}, "keywords": ["PushOver"], "overview": "# PushOver\n\nSend notification to Pushover using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n- Netdata will send warning messages with priority 0 and critical messages with priority 1.\n- Pushover allows you to select do-not-disturb hours. The way this is configured, critical notifications will ring and vibrate your phone, even during the do-not-disturb-hours.\n- All other notifications will be delivered silently.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- An Application token. You can use the same on all your Netdata servers.\n- A User token for each user you are going to send notifications to. This is the actual recipient of the notification.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_PUSHOVER | Set `SEND_PUSHOVER` to YES | | True |\n| PUSHOVER_WEBHOOK_URL | set `PUSHOVER_WEBHOOK_URL` to your Pushover Application token. | | True |\n| DEFAULT_RECIPIENT_PUSHOVER | Set `DEFAULT_RECIPIENT_PUSHOVER` the Pushover User token you want the alert notifications to be sent to. You can define multiple User tokens like this: `USERTOKEN1` `USERTOKEN2`. | | True |\n\n##### DEFAULT_RECIPIENT_PUSHOVER\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_PUSHOVER` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_pushover[sysadmin]=\"USERTOKEN1\"\nrole_recipients_pushover[domainadmin]=\"USERTOKEN2\"\nrole_recipients_pushover[dba]=\"USERTOKEN3 USERTOKEN4\"\nrole_recipients_pushover[webmaster]=\"USERTOKEN5\"\nrole_recipients_pushover[proxyadmin]=\"USERTOKEN6\"\nrole_recipients_pushover[sitemgr]=\"USERTOKEN7\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# pushover (pushover.net) global notification options\n\nSEND_PUSHOVER=\"YES\"\nPUSHOVER_APP_TOKEN=\"XXXXXXXXX\"\nDEFAULT_RECIPIENT_PUSHOVER=\"USERTOKEN\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/pushover/metadata.yaml"}, {"id": "notify-rocketchat", "meta": {"name": "RocketChat", "link": "https://rocket.chat/", "categories": ["notify.agent"], "icon_filename": "rocketchat.png"}, "keywords": ["RocketChat"], "overview": "# RocketChat\n\nSend notifications to Rocket.Chat using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by RocketChat. You can use the same on all your Netdata servers (or you can have multiple if you like - your decision).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_ROCKETCHAT | Set `SEND_ROCKETCHAT` to `YES` | | True |\n| ROCKETCHAT_WEBHOOK_URL | set `ROCKETCHAT_WEBHOOK_URL` to your webhook URL. | | True |\n| DEFAULT_RECIPIENT_ROCKETCHAT | Set `DEFAULT_RECIPIENT_ROCKETCHAT` to the channel you want the alert notifications to be sent to. You can define multiple channels like this: `alerts` `systems`. | | True |\n\n##### DEFAULT_RECIPIENT_ROCKETCHAT\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_ROCKETCHAT` can be edited in the following entries at the bottom of the same file:\n```conf\nrole_recipients_rocketchat[sysadmin]=\"systems\"\nrole_recipients_rocketchat[domainadmin]=\"domains\"\nrole_recipients_rocketchat[dba]=\"databases systems\"\nrole_recipients_rocketchat[webmaster]=\"marketing development\"\nrole_recipients_rocketchat[proxyadmin]=\"proxy_admin\"\nrole_recipients_rocketchat[sitemgr]=\"sites\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# rocketchat (rocket.chat) global notification options\n\nSEND_ROCKETCHAT=\"YES\"\nROCKETCHAT_WEBHOOK_URL=\"\"\nDEFAULT_RECIPIENT_ROCKETCHAT=\"monitoring_alarms\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/rocketchat/metadata.yaml"}, {"id": "notify-slack", "meta": {"name": "Slack", "link": "https://slack.com/", "categories": ["notify.agent"], "icon_filename": "slack.png"}, "keywords": ["Slack"], "overview": "# Slack\n\nSend notifications to a Slack workspace using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Slack app along with an incoming webhook, read Slack's guide on the topic [here](https://api.slack.com/messaging/webhooks).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_SLACK | Set `SEND_SLACK` to YES | | True |\n| SLACK_WEBHOOK_URL | set `SLACK_WEBHOOK_URL` to your Slack app's webhook URL. | | True |\n| DEFAULT_RECIPIENT_SLACK | Set `DEFAULT_RECIPIENT_SLACK` to the Slack channel your Slack app is set to send messages to. The syntax for channels is `#channel` or `channel`. | | True |\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# slack (slack.com) global notification options\n\nSEND_SLACK=\"YES\"\nSLACK_WEBHOOK_URL=\"https://hooks.slack.com/services/XXXXXXXX/XXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\" \nDEFAULT_RECIPIENT_SLACK=\"#alarms\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/slack/metadata.yaml"}, {"id": "notify-sms", "meta": {"name": "SMS", "link": "http://smstools3.kekekasvi.com/", "categories": ["notify.agent"], "icon_filename": "sms.svg"}, "keywords": ["SMS tools 3", "SMS", "Messaging"], "overview": "# SMS\n\nSend notifications to `smstools3` using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\nThe SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- [Install](http://smstools3.kekekasvi.com/index.php?p=compiling) and [configure](http://smstools3.kekekasvi.com/index.php?p=configure) `smsd`\n- To ensure that the user `netdata` can execute `sendsms`. Any user executing `sendsms` needs to:\n - Have write permissions to /tmp and /var/spool/sms/outgoing\n - Be a member of group smsd\n - To ensure that the steps above are successful, just su netdata and execute sendsms phone message.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| sendsms | Set the path for `sendsms`, otherwise Netdata will search for it in your system `$PATH:` | | True |\n| SEND_SMS | Set `SEND_SMS` to `YES`. | | True |\n| DEFAULT_RECIPIENT_SMS | Set DEFAULT_RECIPIENT_SMS to the phone number you want the alert notifications to be sent to. You can define multiple phone numbers like this: PHONE1 PHONE2. | | True |\n\n##### sendsms\n\n# The full path of the sendsms command (smstools3).\n# If empty, the system $PATH will be searched for it.\n# If not found, SMS notifications will be silently disabled.\nsendsms=\"/usr/bin/sendsms\"\n\n\n##### DEFAULT_RECIPIENT_SMS\n\nAll roles will default to this variable if left unconfigured.\n\nYou can then have different phone numbers per role, by editing `DEFAULT_RECIPIENT_SMS` with the phone number you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_sms[sysadmin]=\"PHONE1\"\nrole_recipients_sms[domainadmin]=\"PHONE2\"\nrole_recipients_sms[dba]=\"PHONE3\"\nrole_recipients_sms[webmaster]=\"PHONE4\"\nrole_recipients_sms[proxyadmin]=\"PHONE5\"\nrole_recipients_sms[sitemgr]=\"PHONE6\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# SMS Server Tools 3 (smstools3) global notification options\nSEND_SMS=\"YES\"\nDEFAULT_RECIPIENT_SMS=\"1234567890\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/smstools3/metadata.yaml"}, {"id": "notify-syslog", "meta": {"name": "syslog", "link": "", "categories": ["notify.agent"], "icon_filename": "syslog.png"}, "keywords": ["syslog"], "overview": "# syslog\n\nSend notifications to Syslog using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A working `logger` command for this to work. This is the case on pretty much every Linux system in existence, and most BSD systems.\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SYSLOG_FACILITY | Set `SYSLOG_FACILITY` to the facility used for logging, by default this value is set to `local6`. | | True |\n| DEFAULT_RECIPIENT_SYSLOG | Set `DEFAULT_RECIPIENT_SYSLOG` to the recipient you want the alert notifications to be sent to. | | True |\n| SEND_SYSLOG | Set SEND_SYSLOG to YES, make sure you have everything else configured before turning this on. | | True |\n\n##### DEFAULT_RECIPIENT_SYSLOG\n\nTargets are defined as follows:\n\n```\n[[facility.level][@host[:port]]/]prefix\n```\n\nprefix defines what the log messages are prefixed with. By default, all lines are prefixed with 'netdata'.\n\nThe facility and level are the standard syslog facility and level options, for more info on them see your local logger and syslog documentation. By default, Netdata will log to the local6 facility, with a log level dependent on the type of message (crit for CRITICAL, warning for WARNING, and info for everything else).\n\nYou can configure sending directly to remote log servers by specifying a host (and optionally a port). However, this has a somewhat high overhead, so it is much preferred to use your local syslog daemon to handle the forwarding of messages to remote systems (pretty much all of them allow at least simple forwarding, and most of the really popular ones support complex queueing and routing of messages to remote log servers).\n\nYou can define multiple recipients like this: daemon.notice@loghost:514/netdata daemon.notice@loghost2:514/netdata.\nAll roles will default to this variable if left unconfigured.\n\n\n##### SEND_SYSLOG \n\nYou can then have different recipients per role, by editing DEFAULT_RECIPIENT_SYSLOG with the recipient you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_syslog[sysadmin]=\"daemon.notice@loghost1:514/netdata\"\nrole_recipients_syslog[domainadmin]=\"daemon.notice@loghost2:514/netdata\"\nrole_recipients_syslog[dba]=\"daemon.notice@loghost3:514/netdata\"\nrole_recipients_syslog[webmaster]=\"daemon.notice@loghost4:514/netdata\"\nrole_recipients_syslog[proxyadmin]=\"daemon.notice@loghost5:514/netdata\"\nrole_recipients_syslog[sitemgr]=\"daemon.notice@loghost6:514/netdata\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# syslog notifications\n\nSEND_SYSLOG=\"YES\"\nSYSLOG_FACILITY='local6'\nDEFAULT_RECIPIENT_SYSLOG=\"daemon.notice@loghost6:514/netdata\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/syslog/metadata.yaml"}, {"id": "notify-teams", "meta": {"name": "Microsoft Teams", "link": "https://www.microsoft.com/en-us/microsoft-teams/log-in", "categories": ["notify.agent"], "icon_filename": "msteams.svg"}, "keywords": ["Microsoft", "Teams", "MS teams"], "overview": "# Microsoft Teams\n\nYou can send Netdata alerts to Microsoft Teams using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- The incoming webhook URL as given by Microsoft Teams. You can use the same on all your Netdata servers (or you can have multiple if you like).\n- One or more channels to post the messages to\n- Access to the terminal where Netdata Agent is running\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_MSTEAMS | Set `SEND_MSTEAMS` to YES | | True |\n| MSTEAMS_WEBHOOK_URL | set `MSTEAMS_WEBHOOK_URL` to the incoming webhook URL as given by Microsoft Teams. | | True |\n| DEFAULT_RECIPIENT_MSTEAMS | Set `DEFAULT_RECIPIENT_MSTEAMS` to the encoded Microsoft Teams channel name you want the alert notifications to be sent to. | | True |\n\n##### DEFAULT_RECIPIENT_MSTEAMS\n\nIn Microsoft Teams the channel name is encoded in the URI after `/IncomingWebhook/`. You can define multiple channels like this: `CHANNEL1` `CHANNEL2`.\n\nAll roles will default to this variable if left unconfigured.\n\nYou can have different channels per role, by editing `DEFAULT_RECIPIENT_MSTEAMS` with the channel you want, in the following entries at the bottom of the same file:\n```conf\nrole_recipients_msteams[sysadmin]=\"CHANNEL1\"\nrole_recipients_msteams[domainadmin]=\"CHANNEL2\"\nrole_recipients_msteams[dba]=\"databases CHANNEL3\"\nrole_recipients_msteams[webmaster]=\"CHANNEL4\"\nrole_recipients_msteams[proxyadmin]=\"CHANNEL5\"\nrole_recipients_msteams[sitemgr]=\"CHANNEL6\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Microsoft Teams (office.com) global notification options\n\nSEND_MSTEAMS=\"YES\"\nMSTEAMS_WEBHOOK_URL=\"https://outlook.office.com/webhook/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX@XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/IncomingWebhook/CHANNEL/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"\nDEFAULT_RECIPIENT_MSTEAMS=\"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/msteams/metadata.yaml"}, {"id": "notify-telegram", "meta": {"name": "Telegram", "link": "https://telegram.org/", "categories": ["notify.agent"], "icon_filename": "telegram.svg"}, "keywords": ["Telegram"], "overview": "# Telegram\n\nSend notifications to Telegram using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- A bot token. To get one, contact the [@BotFather](https://t.me/BotFather) bot and send the command `/newbot` and follow the instructions. Start a conversation with your bot or invite it into a group where you want it to send messages.\n- The chat ID for every chat you want to send messages to. Contact the [@myidbot](https://t.me/myidbot) bot and send the `/getid` command to get your personal chat ID or invite it into a group and use the `/getgroupid` command to get the group chat ID. Group IDs start with a hyphen, supergroup IDs start with `-100`.\n- Alternatively, you can get the chat ID directly from the bot API. Send your bot a command in the chat you want to use, then check `https://api.telegram.org/bot{YourBotToken}/getUpdates`, eg. `https://api.telegram.org/bot111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5/getUpdates`\n- Terminal access to the Agent you wish to configure\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_TELEGRAM | Set `SEND_TELEGRAM` to YES | | True |\n| TELEGRAM_BOT_TOKEN | set `TELEGRAM_BOT_TOKEN` to your bot token. | | True |\n| DEFAULT_RECIPIENT_TELEGRAM | Set `DEFAULT_RECIPIENT_TELEGRAM` to the chat ID you want the alert notifications to be sent to. You can define multiple chat IDs like this: 49999333322 -1009999222255. | | True |\n\n##### DEFAULT_RECIPIENT_TELEGRAM\n\nAll roles will default to this variable if left unconfigured.\n\nThe `DEFAULT_RECIPIENT_CUSTOM` can be edited in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_telegram[sysadmin]=\"49999333324\"\nrole_recipients_telegram[domainadmin]=\"49999333389\"\nrole_recipients_telegram[dba]=\"-1009999222255\"\nrole_recipients_telegram[webmaster]=\"-1009999222255 49999333389\"\nrole_recipients_telegram[proxyadmin]=\"49999333344\"\nrole_recipients_telegram[sitemgr]=\"49999333876\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# telegram (telegram.org) global notification options\n\nSEND_TELEGRAM=\"YES\"\nTELEGRAM_BOT_TOKEN=\"111122223:7OpFlFFRzRBbrUUmIjj5HF9Ox2pYJZy5\"\nDEFAULT_RECIPIENT_TELEGRAM=\"-100233335555\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/telegram/metadata.yaml"}, {"id": "notify-twilio", "meta": {"name": "Twilio", "link": "https://www.twilio.com/", "categories": ["notify.agent"], "icon_filename": "twilio.png"}, "keywords": ["Twilio"], "overview": "# Twilio\n\nSend notifications to Twilio using Netdata's Agent alert notification feature, which supports dozens of endpoints, user roles, and more.\n\n", "setup": "## Setup\n\n### Prerequisites\n\n#### \n\n- Get your SID, and Token from https://www.twilio.com/console\n- Terminal access to the Agent you wish to configure\n\n\n\n### Configuration\n\n#### File\n\nThe configuration file name for this integration is `health_alarm_notify.conf`.\n\n\nYou can edit the configuration file using the `edit-config` script from the\nNetdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).\n\n```bash\ncd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata\nsudo ./edit-config health_alarm_notify.conf\n```\n#### Options\n\nThe following options can be defined for this notification\n\n{% details summary=\"Config Options\" %}\n| Name | Description | Default | Required |\n|:----|:-----------|:-------|:--------:|\n| SEND_TWILIO | Set `SEND_TWILIO` to YES | | True |\n| TWILIO_ACCOUNT_SID | set `TWILIO_ACCOUNT_SID` to your account SID. | | True |\n| TWILIO_ACCOUNT_TOKEN | Set `TWILIO_ACCOUNT_TOKEN` to your account token. | | True |\n| TWILIO_NUMBER | Set `TWILIO_NUMBER` to your account's number. | | True |\n| DEFAULT_RECIPIENT_TWILIO | Set DEFAULT_RECIPIENT_TWILIO to the number you want the alert notifications to be sent to. You can define multiple numbers like this: +15555555555 +17777777777. | | True |\n\n##### DEFAULT_RECIPIENT_TWILIO\n\nYou can then have different recipients per role, by editing DEFAULT_RECIPIENT_TWILIO with the recipient's number you want, in the following entries at the bottom of the same file:\n\n```conf\nrole_recipients_twilio[sysadmin]=\"+15555555555\"\nrole_recipients_twilio[domainadmin]=\"+15555555556\"\nrole_recipients_twilio[dba]=\"+15555555557\"\nrole_recipients_twilio[webmaster]=\"+15555555558\"\nrole_recipients_twilio[proxyadmin]=\"+15555555559\"\nrole_recipients_twilio[sitemgr]=\"+15555555550\"\n```\n\n\n{% /details %}\n#### Examples\n\n##### Basic Configuration\n\n\n\n```yaml\n#------------------------------------------------------------------------------\n# Twilio (twilio.com) SMS options\n\nSEND_TWILIO=\"YES\"\nTWILIO_ACCOUNT_SID=\"xxxxxxxxx\"\nTWILIO_ACCOUNT_TOKEN=\"xxxxxxxxxx\"\nTWILIO_NUMBER=\"xxxxxxxxxxx\"\nDEFAULT_RECIPIENT_TWILIO=\"+15555555555\"\n\n```\n", "troubleshooting": "## Troubleshooting\n\n### Test Notification\n\nYou can run the following command by hand, to test alerts configuration:\n\n```bash\n# become user netdata\nsudo su -s /bin/bash netdata\n\n# enable debugging info on the console\nexport NETDATA_ALARM_NOTIFY_DEBUG=1\n\n# send test alarms to sysadmin\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test\n\n# send test alarms to any role\n/usr/libexec/netdata/plugins.d/alarm-notify.sh test \"ROLE\"\n```\n\nNote that this will test _all_ alert mechanisms for the selected role.\n\n", "integration_type": "notification", "edit_link": "https://github.com/netdata/netdata/blob/master/health/notifications/twilio/metadata.yaml"}]
diff --git a/integrations/schemas/categories.json b/integrations/schemas/categories.json
new file mode 100644
index 000000000..9ebb852f5
--- /dev/null
+++ b/integrations/schemas/categories.json
@@ -0,0 +1,55 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "array",
+ "title": "Category information for integrations.",
+ "items": {
+ "$ref": "#/$defs/category"
+ },
+ "$defs": {
+ "category": {
+ "type": "object",
+ "description": "An entry for a single category.",
+ "properties": {
+ "id": {
+ "$ref": "./shared.json#/$defs/id"
+ },
+ "name": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The display name for the category."
+ },
+ "description": {
+ "type": "string",
+ "description": "A description of the category."
+ },
+ "most_popular": {
+ "type": "boolean",
+ "description": "Indicates if the category should show up in the initial list of categories, or only in the full expanded list."
+ },
+ "priority": {
+ "type": "integer",
+ "description": "Indicates sort order for categories that are marked as most popular."
+ },
+ "collector_default": {
+ "type": "boolean",
+ "description": "Indicates that the category should be added to collector integrations that list no categories."
+ },
+ "children": {
+ "type": "array",
+ "description": "A list of categories that are children of this category.",
+ "items": {
+ "$ref": "#/$defs/category"
+ }
+ }
+ },
+ "required": [
+ "id",
+ "name",
+ "description",
+ "most_popular",
+ "priority",
+ "children"
+ ]
+ }
+ }
+}
diff --git a/integrations/schemas/collector.json b/integrations/schemas/collector.json
new file mode 100644
index 000000000..ba5d9f9d1
--- /dev/null
+++ b/integrations/schemas/collector.json
@@ -0,0 +1,411 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "title": "Netdata agent collector metadata.",
+ "properties": {
+ "plugin_name": {
+ "type": "string"
+ },
+ "modules": {
+ "description": "A list of module templates",
+ "items": {
+ "type": "object",
+ "properties": {
+ "meta": {
+ "type": "object",
+ "properties": {
+ "plugin_name": {
+ "type": "string",
+ "description": "Plugin name (e.g. apps.plugin, proc.plugin, go.d.plugin). It must match the name of the executable file in the plugins.d directory."
+ },
+ "module_name": {
+ "type": "string",
+ "description": "Module name (e.g. apache, /proc/stat, httpcheck). It usually has the same name as the module configuration file (external plugin) or the section name in netdata.conf (internal plugin)."
+ },
+ "monitored_instance": {
+ "$ref": "./shared.json#/$defs/instance"
+ },
+ "keywords": {
+ "$ref": "./shared.json#/$defs/keywords"
+ },
+ "related_resources": {
+ "type": "object",
+ "description": "Available related resources for the monitored instance.",
+ "properties": {
+ "integrations": {
+ "type": "object",
+ "description": "All collectors that provide additional metrics for the monitored instance. This may include generic collectors, e.g. 'httpcheck' for web servers to monitor specific endpoints.",
+ "properties": {
+ "list": {
+ "type": "array",
+ "description": "List of related integrations.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "plugin_name": {
+ "type": "string",
+ "description": "Related integration plugin name."
+ },
+ "module_name": {
+ "type": "string",
+ "description": "Related integration module name."
+ }
+ },
+ "required": [
+ "plugin_name",
+ "module_name"
+ ]
+ }
+ }
+ },
+ "required": [
+ "list"
+ ]
+ }
+ },
+ "required": [
+ "integrations"
+ ]
+ },
+ "info_provided_to_referring_integrations": {
+ "type": "object",
+ "description": "Information that this collector can provide about itself when other integrations mention it. This text will not be appear on this collector's page.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "TODO"
+ }
+ },
+ "required": [
+ "description"
+ ]
+ },
+ "most_popular": {
+ "type": "boolean",
+ "description": "Whether or not the integration is to be flagged as most-popular, meaning it will show up at the top of the menu."
+ },
+ "community": {
+ "type": "boolean",
+ "description": "Whether or not the integration should be flagged as community."
+ }
+ },
+ "required": [
+ "plugin_name",
+ "module_name",
+ "monitored_instance",
+ "keywords",
+ "related_resources",
+ "info_provided_to_referring_integrations",
+ "most_popular"
+ ]
+ },
+ "overview": {
+ "type": "object",
+ "properties": {
+ "data_collection": {
+ "type": "object",
+ "description": "An overview of the collected metrics and a detailed description of the data collection method.",
+ "properties": {
+ "metrics_description": {
+ "type": "string",
+ "description": "Brief description of what metrics are collected. A suggested approach here is to talk about the areas covered (e.g. health, performance, errors) and the metric scopes."
+ },
+ "method_description": {
+ "type": "string",
+ "description": "Description of how metrics are collected (e.g. HTTP requests, establish a TCP connection and send a command, a specific binary execution). A suggested approach here is to provide a detailed description of how the collector gathers metrics: how many connections are established, exact requests/commands executed, exact endpoints used."
+ }
+ },
+ "required": [
+ "metrics_description",
+ "method_description"
+ ]
+ },
+ "supported_platforms": {
+ "type": "object",
+ "description": "Supported OS/platforms. By default, all platforms supported by Netdata are considered supported. See https://learn.netdata.cloud/docs/installing/platform-support-policy#currently-supported-platforms.",
+ "properties": {
+ "include": {
+ "type": "array",
+ "description": "Only supported OS/platforms. Platforms supported by Netdata will be ignored, only those listed are considered supported.",
+ "items": {
+ "type": "string",
+ "minLength": 2
+ }
+ },
+ "exclude": {
+ "type": "array",
+ "description": "Unsupported OS/platforms. The result set is all platforms supported by Netdata except for those excluded.",
+ "items": {
+ "type": "string",
+ "minLength": 2
+ }
+ }
+ },
+ "required": [
+ "include",
+ "exclude"
+ ]
+ },
+ "multi_instance": {
+ "type": "boolean",
+ "description": "Whether this collector supports collecting metrics from multiple (for example, local and remote) instances."
+ },
+ "additional_permissions": {
+ "type": "object",
+ "description": "Information about additional permissions other than those required by the Netdata process (e.g. setuid, specific Linux capabilities).",
+ "properties": {
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description"
+ ]
+ },
+ "default_behavior": {
+ "type": "object",
+ "description": "Descriptions of how the data collector works with the default configuration.",
+ "properties": {
+ "auto_detection": {
+ "type": "object",
+ "description": "Information about detecting (discovering) monitored instances with default configuration. Example: tries to connect to Apache running on localhost on ports 80, 443 and 8080.",
+ "properties": {
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description"
+ ]
+ },
+ "limits": {
+ "type": "object",
+ "description": "Information about limiting data collection, taking into account the default values of any configuration settings that restrict data collection (including filtering metrics).",
+ "properties": {
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description"
+ ]
+ },
+ "performance_impact": {
+ "type": "object",
+ "description": "Information about the known impact on the performance of the monitored application or system.",
+ "properties": {
+ "description": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "description"
+ ]
+ }
+ },
+ "required": [
+ "auto_detection",
+ "limits",
+ "performance_impact"
+ ]
+ }
+ },
+ "required": [
+ "data_collection",
+ "supported_platforms",
+ "multi_instance",
+ "additional_permissions",
+ "default_behavior"
+ ]
+ },
+ "setup": {
+ "$ref": "./shared.json#/$defs/full_setup"
+ },
+ "troubleshooting": {
+ "$ref": "./shared.json#/$defs/troubleshooting"
+ },
+ "alerts": {
+ "type": "array",
+ "description": "The list of configured alerts shipped with Netdata for this collector.",
+ "items": {
+ "type": "object",
+ "description": "Information about the configured alert.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Alert's 'alarm' or 'template' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-alarm-or-template)."
+ },
+ "link": {
+ "type": "string",
+ "description": "Link to github .conf file that this alert originates from"
+ },
+ "metric": {
+ "type": "string",
+ "description": "Alert's 'on' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-on)."
+ },
+ "info": {
+ "type": "string",
+ "description": "Alert's 'info' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-info)."
+ },
+ "os": {
+ "type": "string",
+ "description": "Alert's 'os' value (https://learn.netdata.cloud/docs/alerting/health-configuration-reference#alarm-line-os)."
+ }
+ },
+ "required": [
+ "name",
+ "link",
+ "metric",
+ "info"
+ ]
+ }
+ },
+ "metrics": {
+ "type": "object",
+ "description": "Collected metrics grouped by scope. The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.",
+ "properties": {
+ "folding": {
+ "$ref": "./shared.json#/$defs/_folding"
+ },
+ "description": {
+ "type": "string",
+ "description": "General description of collected metrics/scopes."
+ },
+ "availability": {
+ "type": "array",
+ "description": "Metrics collection availability conditions. Some metrics are only available when certain conditions are met. For example, Apache exposes additional metrics when Extended status is configured, Consul exposes different set of metrics depends on its mode. This field should list the available conditions that will later be matched for each of the metrics.",
+ "items": {
+ "type": "string",
+ "description": "Availability condition name."
+ }
+ },
+ "scopes": {
+ "type": "array",
+ "description": "List of scopes and their metrics.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Scope name."
+ },
+ "description": {
+ "type": "string",
+ "description": "Scope description."
+ },
+ "labels": {
+ "type": "array",
+ "description": "Label set of the scope.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Label name."
+ },
+ "description": {
+ "type": "string",
+ "description": "Label description."
+ }
+ },
+ "required": [
+ "name",
+ "description"
+ ]
+ }
+ },
+ "metrics": {
+ "type": "array",
+ "description": "List of collected metrics (chart contexts) in the scope.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Metric name (chart context)."
+ },
+ "availability": {
+ "type": "array",
+ "description": "Metric collection availability conditions. An empty list means that it is available for all conditions defined in 'metrics.availability'.",
+ "items": {
+ "type": "string",
+ "description": "Availability condition name."
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "Metric description (chart title)."
+ },
+ "unit": {
+ "type": "string",
+ "description": "Metric description (chart unit)."
+ },
+ "chart_type": {
+ "type": "string",
+ "description": "Metric description (chart type).",
+ "enum": [
+ "line",
+ "area",
+ "stacked"
+ ]
+ },
+ "dimensions": {
+ "type": "array",
+ "description": "",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Dimension name."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ }
+ }
+ },
+ "required": [
+ "name",
+ "description",
+ "unit",
+ "chart_type",
+ "dimensions"
+ ]
+ }
+ }
+ },
+ "required": [
+ "name",
+ "description",
+ "labels",
+ "metrics"
+ ]
+ }
+ }
+ },
+ "required": [
+ "folding",
+ "description",
+ "availability",
+ "scopes"
+ ]
+ }
+ },
+ "required": [
+ "meta",
+ "overview",
+ "setup",
+ "troubleshooting",
+ "alerts",
+ "metrics"
+ ]
+ }
+ }
+ },
+ "required": [
+ "plugin_name",
+ "modules"
+ ]
+}
diff --git a/integrations/schemas/deploy.json b/integrations/schemas/deploy.json
new file mode 100644
index 000000000..b2bd7206b
--- /dev/null
+++ b/integrations/schemas/deploy.json
@@ -0,0 +1,116 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "array",
+ "title": "Netdata deployment information meta.",
+ "items": {
+ "type": "object",
+ "description": "Individual entries for deployment information.",
+ "properties": {
+ "id": {
+ "$ref": "./shared.json#/$defs/id"
+ },
+ "meta": {
+ "$ref": "./shared.json#/$defs/instance"
+ },
+ "keywords": {
+ "$ref": "./shared.json#/$defs/keywords"
+ },
+ "most_popular": {
+ "type": "boolean",
+ "description": "If true, the integration is sorted to the top of the list of integrations."
+ },
+ "install_description": {
+ "type": "string",
+ "description": "Describes basic information about how to deploy on this platform."
+ },
+ "methods": {
+ "type": "array",
+ "description": "Describes the various ways to deploy on this platform.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "method": {
+ "type": "string",
+ "description": "The name of the installation method."
+ },
+ "commands": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "properties": {
+ "channel": {
+ "type": "string",
+ "description": "The release channel that this command is used for.",
+ "enum": [
+ "nightly",
+ "stable"
+ ]
+ },
+ "command": {
+ "type": "string",
+ "description": "The command to run for installing using this method."
+ }
+ },
+ "required": [
+ "channel",
+ "command"
+ ]
+ }
+ }
+ },
+ "required": [
+ "method",
+ "commands"
+ ]
+ }
+ },
+ "additional_info": {
+ "type": "string",
+ "description": "Any additional information about this platform."
+ },
+ "related_resources": {
+ "type": "object",
+ "description": "TBD"
+ },
+ "platform_info": {
+ "type": "object",
+ "description": "References what platform this deployment info is for. In the parsed output, this will be replaced with a markdown string covering basic support information for this platform.",
+ "properties": {
+ "group": {
+ "type": "string",
+ "description": "Identifies the group that the platform is in. 'include' is used for platforms that are in auto-generated CI. 'no_include' is used for platforms that are not in auto-generated CI. An empty string indicates no associated platform information.",
+ "enum": [
+ "include",
+ "no_include",
+ ""
+ ]
+ },
+ "distro": {
+ "type": "string",
+ "description": "Identifies the platform within the group, based on the value of the 'distro' key."
+ }
+ },
+ "required": [
+ "group",
+ "distro"
+ ]
+ },
+ "quick_start": {
+ "type": "integer",
+ "description": "Indicates where the deploy integration should appear in the add nodes dialogue. A value less than 0 indicates that it should not appear on this dialogue."
+ }
+ },
+ "required": [
+ "id",
+ "meta",
+ "keywords",
+ "most_popular",
+ "install_description",
+ "methods",
+ "additional_info",
+ "related_resources",
+ "platform_info",
+ "quick_start"
+ ]
+ }
+}
diff --git a/integrations/schemas/distros.json b/integrations/schemas/distros.json
new file mode 100644
index 000000000..510408653
--- /dev/null
+++ b/integrations/schemas/distros.json
@@ -0,0 +1,153 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "type": "object",
+ "title": "Platform support information for the Netdata agent.",
+ "properties": {
+ "platform_map": {
+ "type": "object",
+ "description": "Maps CPU architectures to Docker platform strings. Used by CI when generating build matrices.",
+ "patternProperties": {
+ "^.+$": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "additionalProperties": false
+ },
+ "arch_order": {
+ "type": "array",
+ "description": "Defines the CPU architecture sort order used when generating build matrices in CI.",
+ "items": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "include": {
+ "type": "array",
+ "description": "Defines data for platforms that are included in CI.",
+ "items": {
+ "$ref": "#/$defs/platform"
+ }
+ }
+ },
+ "required": [
+ "platform_map",
+ "arch_order",
+ "include"
+ ],
+ "$defs": {
+ "platform": {
+ "type": "object",
+ "description": "Describes a platform.",
+ "properties": {
+ "distro": {
+ "type": "string",
+ "description": "The name of the platform.",
+ "pattern": "^[a-z][a-z0-9]*$"
+ },
+ "version": {
+ "type": "string",
+ "description": "Version identifier for the platform.",
+ "pattern": "^[a-z0-9][a-z.0-9]*$"
+ },
+ "support_type": {
+ "type": "string",
+ "description": "Defines the support tier that the platform is in.",
+ "enum": [
+ "Core",
+ "Intermediate",
+ "Community",
+ "Third-Party",
+ "Unsupported"
+ ]
+ },
+ "notes": {
+ "type": "string",
+ "description": "Any additional notes about the platform."
+ },
+ "eol_check": {
+ "description": "Indicates if EOL checks should be done for this platform. Only relevant if the platform is included in CI. If the value is a string, that value is used for the EOL check lookup, otherwise the value of the distro key is used.",
+ "oneOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "string",
+ "pattern": "^[a-z][a-z0-9._-]*$"
+ }
+ ]
+ },
+ "base_image": {
+ "type": "string",
+ "description": "A string specifying the Docker image to be used for testing this platform.",
+ "pattern": "^[a-z][a-z0-9._/:-]*$"
+ },
+ "env_prep": {
+ "type": "string",
+ "description": "A string containing any shell commands that need to be run to prep the platform for testing in CI."
+ },
+ "jsonc_removal": {
+ "type": "string",
+ "description": "A string containing a shell command to uninstall JSON-C development files during CI checks."
+ },
+ "test": {
+ "type": "object",
+ "description": "Contains additional data for usage by CI.",
+ "properties": {
+ "ebpf-core": {
+ "type": "boolean",
+ "description": "If true, then eBPF CO-RE CI jobs should be run for this platform."
+ }
+ }
+ },
+ "packages": {
+ "type": "object",
+ "description": "Additional information about native packages for this platform.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Indicates the type of native packages to build for the platform.",
+ "enum": [
+ "deb",
+ "rpm",
+ ""
+ ]
+ },
+ "arches": {
+ "type": "array",
+ "description": "A list of CPU architectures (specified in the usual manner for the platform) that native packages are built for for this platform.",
+ "items": {
+ "type": "string",
+ "minLength": 1
+ }
+ },
+ "repo_distro": {
+ "type": "string",
+ "description": "Identifies the repository name to be used when publishing packages for this platform.",
+ "minLength": 1
+ },
+ "alt_links": {
+ "type": "array",
+ "description": "A list of alternative repository names to be used when publishing packages for this platform.",
+ "items": {
+ "type": "string",
+ "minLength": 1
+ }
+ }
+ },
+ "required": [
+ "type",
+ "arches"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "required": [
+ "distro",
+ "version",
+ "support_type",
+ "notes"
+ ]
+ }
+ }
+}
diff --git a/integrations/schemas/exporter.json b/integrations/schemas/exporter.json
new file mode 100644
index 000000000..51c45cabb
--- /dev/null
+++ b/integrations/schemas/exporter.json
@@ -0,0 +1,63 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Netdata Agent data exporter metadata.",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/entry"
+ },
+ {
+ "type": "array",
+ "minLength": 1,
+ "items": {
+ "$ref": "#/$defs/entry"
+ }
+ }
+ ],
+ "$defs": {
+ "entry": {
+ "type": "object",
+ "properties": {
+ "id": {
+ "$ref": "./shared.json#/$defs/id"
+ },
+ "meta": {
+ "$ref": "./shared.json#/$defs/instance"
+ },
+ "keywords": {
+ "$ref": "./shared.json#/$defs/keywords"
+ },
+ "overview": {
+ "type": "object",
+ "description": "General information about the exporter.",
+ "properties": {
+ "exporter_description": {
+ "type": "string",
+ "description": "General description of what the exporter does."
+ },
+ "exporter_limitations": {
+ "type": "string",
+ "description": "Explanation of any limitations of the exporter."
+ }
+ },
+ "required": [
+ "exporter_description",
+ "exporter_limitations"
+ ]
+ },
+ "setup": {
+ "$ref": "./shared.json#/$defs/full_setup"
+ },
+ "troubleshooting": {
+ "$ref": "./shared.json#/$defs/troubleshooting"
+ }
+ },
+ "required": [
+ "id",
+ "meta",
+ "keywords",
+ "overview",
+ "setup"
+ ]
+ }
+ }
+}
diff --git a/integrations/schemas/notification.json b/integrations/schemas/notification.json
new file mode 100644
index 000000000..2596ca441
--- /dev/null
+++ b/integrations/schemas/notification.json
@@ -0,0 +1,87 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Netdata notification mechanism metadata.",
+ "oneOf": [
+ {
+ "$ref": "#/$defs/entry"
+ },
+ {
+ "type": "array",
+ "minLength": 1,
+ "items": {
+ "$ref": "#/$defs/entry"
+ }
+ }
+ ],
+ "$defs": {
+ "entry": {
+ "type": "object",
+ "description": "Data for a single notification method.",
+ "properties": {
+ "id": {
+ "$ref": "./shared.json#/$defs/id"
+ },
+ "meta": {
+ "$ref": "./shared.json#/$defs/instance"
+ },
+ "keywords": {
+ "$ref": "./shared.json#/$defs/keywords"
+ },
+ "overview": {
+ "type": "object",
+ "description": "General information about the notification method.",
+ "properties": {
+ "notification_description": {
+ "type": "string",
+ "description": "General description of what the notification method does."
+ },
+ "notification_limitations": {
+ "type": "string",
+ "description": "Explanation of any limitations of the notification method."
+ }
+ },
+ "required": [
+ "notification_description",
+ "notification_limitations"
+ ]
+ },
+ "global_setup": {
+ "type": "object",
+ "description": "Flags that show which global setup sections are relevant for this notification method.",
+ "properties": {
+ "severity_filtering": {
+ "type": "boolean"
+ },
+ "http_proxy": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "severity_filtering",
+ "http_proxy"
+ ]
+ },
+ "setup": {
+ "oneOf": [
+ {
+ "$ref": "./shared.json#/$defs/short_setup"
+ },
+ {
+ "$ref": "./shared.json#/$defs/full_setup"
+ }
+ ]
+ },
+ "troubleshooting": {
+ "$ref": "./shared.json#/$defs/troubleshooting"
+ }
+ },
+ "required": [
+ "id",
+ "meta",
+ "keywords",
+ "overview",
+ "setup"
+ ]
+ }
+ }
+}
diff --git a/integrations/schemas/shared.json b/integrations/schemas/shared.json
new file mode 100644
index 000000000..5aa926c3f
--- /dev/null
+++ b/integrations/schemas/shared.json
@@ -0,0 +1,327 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "Shared definitions used for all integrations schemas.",
+ "$defs": {
+ "id": {
+ "type": "string",
+ "minLength": 1,
+ "description": "A unique ID for the item. Must be URL safe."
+ },
+ "instance": {
+ "type": "object",
+ "description": "Information about the integration instance.",
+ "properties": {
+ "name": {
+ "description": "Integration display name. Use official spelling for applications.",
+ "type": "string"
+ },
+ "link": {
+ "description": "Link to the instance official website if any.",
+ "type": "string"
+ },
+ "categories": {
+ "type": "array",
+ "description": "Category IDs that this integration falls into. IDs can be found in integrations/categories.yaml",
+ "items": {
+ "type": "string",
+ "description": "String defining integration category"
+ }
+ },
+ "icon_filename": {
+ "type": "string",
+ "description": "The filename of the integration's icon, as sourced from https://github.com/netdata/website/tree/master/themes/tailwind/static/img."
+ },
+ "variables": {
+ "type": "object",
+ "description": "A mapping of variables to be used when templating other keys.",
+ "patternProperties": {
+ "^[a-zA-Z_][a-zA-Z0-9_]*$": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "integer"
+ },
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ }
+ },
+ "additionalProperties": false
+ }
+ },
+ "required": [
+ "name",
+ "link",
+ "categories",
+ "icon_filename"
+ ]
+ },
+ "keywords": {
+ "type": "array",
+ "description": "An array of terms related to the integration.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "short_setup": {
+ "type": "object",
+ "description": "Simplified information about how to enable and configure the integration.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "A description of how to enable and configure the integration."
+ }
+ },
+ "required": [
+ "description"
+ ]
+ },
+ "full_setup": {
+ "type": "object",
+ "description": "Complete information that is needed to enable and configure the integration.",
+ "properties": {
+ "prerequisites": {
+ "type": "object",
+ "description": "Actions the user must take to make the integration work, if any. It includes both configuring Netdata (e.g. if the integration is disabled by default) and configuring any external components the integration interacts with.",
+ "properties": {
+ "list": {
+ "type": "array",
+ "description": "List of prerequisites.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "title": {
+ "type": "string",
+ "description": "Title should reflect the description, be short and in the form of a command (e.g. Create netdata user, Enable build-in web server)."
+ },
+ "description": {
+ "type": "string",
+ "description": "Steps to follow to meet this prerequisite."
+ }
+ },
+ "required": [
+ "title",
+ "description"
+ ]
+ }
+ }
+ },
+ "required": [
+ "list"
+ ]
+ },
+ "configuration": {
+ "description": "Information on how to configure the integration and available configuration options.",
+ "type": "object",
+ "properties": {
+ "file": {
+ "type": "object",
+ "description": "Configuration file.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Configuration file name."
+ },
+ "section_name": {
+ "type": "string",
+ "description": "The name of the section in the configuration file. Only for data collectors whose configuration is in netdata.conf (e.g. proc.plugin modules)."
+ }
+ },
+ "required": [
+ "name"
+ ]
+ },
+ "options": {
+ "type": "object",
+ "description": "All information about the available configuration options.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "Optional common information about options."
+ },
+ "folding": {
+ "$ref": "./shared.json#/$defs/_folding"
+ },
+ "list": {
+ "type": "array",
+ "description": "List of configuration options.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Option name."
+ },
+ "description": {
+ "type": "string",
+ "description": "Option description. Must be short. Use 'detailed_description' for a long description."
+ },
+ "detailed_description": {
+ "type": "string",
+ "description": "Option detailed description. Use it to describe in details complex options."
+ },
+ "default_value": {
+ "type": [
+ "string",
+ "number",
+ "boolean"
+ ],
+ "description": "Default value. Leave empty if none."
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Indicates whether this option is required or not. The option is required if the integration does not work if it is not set."
+ }
+ },
+ "required": [
+ "name",
+ "description",
+ "default_value",
+ "required"
+ ]
+ }
+ }
+ },
+ "required": [
+ "description",
+ "folding",
+ "list"
+ ]
+ },
+ "examples": {
+ "type": "object",
+ "description": "Configuration examples. The more examples the better!",
+ "properties": {
+ "folding": {
+ "$ref": "./shared.json#/$defs/_folding"
+ },
+ "list": {
+ "type": "array",
+ "description": "List of configuration examples.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Example name."
+ },
+ "folding": {
+ "$ref": "./shared.json#/$defs/_folding_relaxed"
+ },
+ "description": {
+ "type": "string",
+ "description": "Example description."
+ },
+ "config": {
+ "type": "string",
+ "description": "Example configuration."
+ }
+ },
+ "required": [
+ "name",
+ "description",
+ "config"
+ ]
+ }
+ }
+ },
+ "required": [
+ "folding",
+ "list"
+ ]
+ }
+ },
+ "required": [
+ "file",
+ "options",
+ "examples"
+ ]
+ }
+ },
+ "required": [
+ "prerequisites",
+ "configuration"
+ ]
+ },
+ "troubleshooting": {
+ "type": "object",
+ "description": "Information needed to troubleshoot issues with this collector.",
+ "properties": {
+ "problems": {
+ "type": "object",
+ "description": "Common problems that users face again and again... and their solutions.",
+ "properties": {
+ "list": {
+ "type": "array",
+ "description": "List of common problems.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Problem name."
+ },
+ "description": {
+ "type": "string",
+ "description": "Explanation of the problem and its solution."
+ }
+ }
+ },
+ "required": [
+ "name",
+ "description"
+ ]
+ }
+ },
+ "required": [
+ "list"
+ ]
+ }
+ },
+ "required": [
+ "problems"
+ ]
+ },
+ "_folding": {
+ "type": "object",
+ "description": "Content folding settings.",
+ "properties": {
+ "title": {
+ "description": "Folded content summary title.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "Determines if this content should be folded.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "title",
+ "enabled"
+ ]
+ },
+ "_folding_relaxed": {
+ "type": "object",
+ "description": "Content folding settings with optional title.",
+ "properties": {
+ "title": {
+ "description": "Folded content summary title.",
+ "type": "string"
+ },
+ "enabled": {
+ "description": "Determines if this content should be folded.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ }
+ }
+}
diff --git a/integrations/templates/README.md b/integrations/templates/README.md
new file mode 100644
index 000000000..3dcc5ad04
--- /dev/null
+++ b/integrations/templates/README.md
@@ -0,0 +1,27 @@
+This directory contains templates used to generate the `integrations.js` file.
+
+Templating is done using Jinja2 as a templating engine. Full documentation
+can be found at https://jinja.palletsprojects.com/en/ (the ‘Template
+Designer Documentation’ is the relevant part for people looking to
+edit the templates, it’s not linked directly here to avoid embedding
+version numbers in the links).
+
+The particular instance of Jinja2 used has the following configuration
+differences from the defaults:
+
+- Any instances of curly braces in are replaced with square brackets
+ (so instead of `{{ variable }}`, the syntax used here is `[[ variable
+ ]]`. This is done so that templating commands for the frontend can be
+ included without having to do any special escaping for them.
+- `trim_blocks` and `lstrip_blocks` are both enabled, meaning that
+ the first newline after a block will be _removed_, as will any leading
+ whitespace on the same line as a block.
+
+Each markdown template corresponds to the key of the same name in the
+integrations objects in that file. Those templates get passed the
+integration data using the name `entry`, plus the composed related
+resource data using the name `rel_res`.
+
+The `integrations.js` template is used to compose the final file. It gets
+passed the JSON-formatted category and integration data using the names
+`categories` and `integrations` respectively.
diff --git a/integrations/templates/alerts.md b/integrations/templates/alerts.md
new file mode 100644
index 000000000..ca8bd66e6
--- /dev/null
+++ b/integrations/templates/alerts.md
@@ -0,0 +1,14 @@
+## Alerts
+
+[% if entry.alerts %]
+
+The following alerts are available:
+
+| Alert name | On metric | Description |
+|:------------|:----------|:------------|
+[% for alert in entry.alerts %]
+| [ [[ alert.name ]] ]([[ alert.link ]]) | [[ alert.metric ]] | [[ alert.info ]] |
+[% endfor %]
+[% else %]
+There are no alerts configured by default for this integration.
+[% endif %]
diff --git a/integrations/templates/integrations.js b/integrations/templates/integrations.js
new file mode 100644
index 000000000..7af65508c
--- /dev/null
+++ b/integrations/templates/integrations.js
@@ -0,0 +1,6 @@
+// DO NOT EDIT THIS FILE DIRECTLY
+// It gets generated by integrations/gen_integrations.py in the Netdata repo
+
+export const categories = [[ categories ]]
+export const integrations = [[ integrations ]]
+
diff --git a/integrations/templates/metrics.md b/integrations/templates/metrics.md
new file mode 100644
index 000000000..95fa7504b
--- /dev/null
+++ b/integrations/templates/metrics.md
@@ -0,0 +1,49 @@
+[% if entry.metrics.scopes %]
+## Metrics
+
+[% if entry.metrics.folding.enabled %]
+{% details summary="[[ entry.metrics.folding.title ]]" %}
+[% endif %]
+Metrics grouped by *scope*.
+
+The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
+
+[[ entry.metrics.description ]]
+
+[% for scope in entry.metrics.scopes %]
+### Per [[ scope.name ]]
+
+[[ scope.description ]]
+
+[% if scope.labels %]
+Labels:
+
+| Label | Description |
+|:-----------|:----------------|
+[% for label in scope.labels %]
+| [[ label.name ]] | [[ label.description ]] |
+[% endfor %]
+[% else %]
+This scope has no labels.
+[% endif %]
+
+Metrics:
+
+| Metric | Dimensions | Unit |[% for a in entry.metrics.availability %] [[ a ]] |[% endfor %]
+
+|:------|:----------|:----|[% for a in entry.metrics.availability %]:---:|[% endfor %]
+
+[% for metric in scope.metrics %]
+| [[ metric.name ]] | [% for d in metric.dimensions %][[ d.name ]][% if not loop.last %], [% endif %][% endfor %] | [[ metric.unit ]] |[% for a in entry.metrics.availability %] [% if not metric.availability|length or a in metric.availability %]•[% else %] [% endif %] |[% endfor %]
+
+[% endfor %]
+
+[% endfor %]
+[% if entry.metrics.folding.enabled %]
+{% /details %}
+[% endif %]
+[% else %]
+## Metrics
+
+[[ entry.metrics.description ]]
+[% endif %]
diff --git a/integrations/templates/overview.md b/integrations/templates/overview.md
new file mode 100644
index 000000000..b89e51543
--- /dev/null
+++ b/integrations/templates/overview.md
@@ -0,0 +1,7 @@
+[% if entry.integration_type == 'collector' %]
+[% include 'overview/collector.md' %]
+[% elif entry.integration_type == 'exporter' %]
+[% include 'overview/exporter.md' %]
+[% elif entry.integration_type == 'notification' %]
+[% include 'overview/notification.md' %]
+[% endif %]
diff --git a/integrations/templates/overview/collector.md b/integrations/templates/overview/collector.md
new file mode 100644
index 000000000..0030b2533
--- /dev/null
+++ b/integrations/templates/overview/collector.md
@@ -0,0 +1,67 @@
+# [[ entry.meta.monitored_instance.name ]]
+
+## Overview
+
+[[ entry.overview.data_collection.metrics_description ]]
+
+[[ entry.overview.data_collection.method_description ]]
+
+[% if entry.overview.supported_platforms.include %]
+This collector is only supported on the following platforms:
+
+[% for platform in entry.overview.supported_platforms.include %]
+- [[ platform ]]
+[% endfor %]
+[% elif entry.overview.supported_platforms.exclude %]
+This collector is supported on all platforms except for the following platforms:
+
+[% for platform in entry.overview.supported_platforms.exclude %]
+- [[ platform ]]
+[% endfor %]
+[% else %]
+This collector is supported on all platforms.
+[% endif %]
+
+[% if entry.overview.multi_instance %]
+This collector supports collecting metrics from multiple instances of this integration, including remote instances.
+[% else %]
+This collector only supports collecting metrics from a single instance of this integration.
+[% endif %]
+
+[% if entry.overview.additional_permissions.description %]
+[[ entry.overview.additional_permissions.description ]]
+[% endif %]
+
+[% if related %]
+[[ entry.meta.name ]] can be monitored further using the following other integrations:
+
+[% for res in related %]
+- {% relatedResource id="[[ res.id ]]" %}[[ res.name ]]{% /relatedResource %}
+[% endfor %]
+
+[% endif %]
+### Default Behavior
+
+#### Auto-Detection
+
+[% if entry.overview.default_behavior.auto_detection.description %]
+[[ entry.overview.default_behavior.auto_detection.description ]]
+[% else %]
+This integration doesn't support auto-detection.
+[% endif %]
+
+#### Limits
+
+[% if entry.overview.default_behavior.limits.description %]
+[[ entry.overview.default_behavior.limits.description ]]
+[% else %]
+The default configuration for this integration does not impose any limits on data collection.
+[% endif %]
+
+#### Performance Impact
+
+[% if entry.overview.default_behavior.performance_impact.description %]
+[[ entry.overview.default_behavior.performance_impact.description ]]
+[% else %]
+The default configuration for this integration is not expected to impose a significant performance impact on the system.
+[% endif %]
diff --git a/integrations/templates/overview/exporter.md b/integrations/templates/overview/exporter.md
new file mode 100644
index 000000000..218a67b7d
--- /dev/null
+++ b/integrations/templates/overview/exporter.md
@@ -0,0 +1,9 @@
+# [[ entry.meta.name ]]
+
+[[ entry.overview.exporter_description ]]
+[% if entry.overview.exporter_limitations %]
+
+## Limitations
+
+[[ entry.overview.exporter_limitations ]]
+[% endif %]
diff --git a/integrations/templates/overview/notification.md b/integrations/templates/overview/notification.md
new file mode 100644
index 000000000..37e5785a4
--- /dev/null
+++ b/integrations/templates/overview/notification.md
@@ -0,0 +1,9 @@
+# [[ entry.meta.name ]]
+
+[[ entry.overview.notification_description ]]
+[% if entry.overview.notification_limitations %]
+
+## Limitations
+
+[[ entry.overview.notification_limitations ]]
+[% endif %]
diff --git a/integrations/templates/platform_info.md b/integrations/templates/platform_info.md
new file mode 100644
index 000000000..dfa0b1980
--- /dev/null
+++ b/integrations/templates/platform_info.md
@@ -0,0 +1,9 @@
+[% if entries %]
+The following releases of this platform are supported:
+
+| Version | Support Tier | Native Package Architectures | Notes |
+|:-------:|:------------:|:----------------------------:|:----- |
+[% for e in entries %]
+| [[ e.version ]] | [[ e.support ]] | [[ ', '.join(e.arches) ]] | [[ e.notes ]] |
+[% endfor %]
+[% endif %]
diff --git a/integrations/templates/related_resources.md b/integrations/templates/related_resources.md
new file mode 100644
index 000000000..b7a199e8b
--- /dev/null
+++ b/integrations/templates/related_resources.md
@@ -0,0 +1,7 @@
+[% if related %]
+You can further monitor this integration by using:
+
+[% for item in related %]
+- {% relatedResource id="[[ item.id ]]" %}[[ item.name ]]{% /relatedResource %}: [[ item.info.description ]]
+[% endfor %]
+[% endif %]
diff --git a/integrations/templates/setup.md b/integrations/templates/setup.md
new file mode 100644
index 000000000..101f5bcbc
--- /dev/null
+++ b/integrations/templates/setup.md
@@ -0,0 +1,108 @@
+## Setup
+
+[% if entry.setup.description %]
+[[ entry.setup.description ]]
+[% else %]
+### Prerequisites
+[% if entry.setup.prerequisites.list %]
+
+[% for prereq in entry.setup.prerequisites.list %]
+#### [[ prereq.title ]]
+
+[[ prereq.description ]]
+
+[% endfor %]
+
+[% else %]
+
+No action required.
+
+[% endif %]
+### Configuration
+
+#### File
+
+[% if entry.setup.configuration.file.name %]
+The configuration file name for this integration is `[[ entry.setup.configuration.file.name ]]`.
+[% if 'section_name' in entry.setup.configuration.file %]
+Configuration for this specific integration is located in the `[[ entry.setup.configuration.file.section_name ]]` section within that file.
+[% endif %]
+
+[% if entry.plugin_name == 'go.d.plugin' %]
+[% include 'setup/sample-go-config.md' %]
+[% elif entry.plugin_name == 'python.d.plugin' %]
+[% include 'setup/sample-python-config.md' %]
+[% elif entry.plugin_name == 'charts.d.plugin' %]
+[% include 'setup/sample-charts-config.md' %]
+[% elif entry.plugin_name == 'ioping.plugin' %]
+[% include 'setup/sample-charts-config.md' %]
+[% elif entry.plugin_name == 'apps.plugin' %]
+[% include 'setup/sample-apps-config.md' %]
+[% elif entry.plugin_name == 'ebpf.plugin' %]
+[% include 'setup/sample-netdata-config.md' %]
+[% elif entry.setup.configuration.file.name == 'netdata.conf' %]
+[% include 'setup/sample-netdata-config.md' %]
+[% endif %]
+
+You can edit the configuration file using the `edit-config` script from the
+Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
+
+```bash
+cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
+sudo ./edit-config [[ entry.setup.configuration.file.name ]]
+```
+[% else %]
+There is no configuration file.
+[% endif %]
+#### Options
+
+[[ entry.setup.configuration.options.description ]]
+
+[% if entry.setup.configuration.options.list %]
+[% if entry.setup.configuration.options.folding.enabled %]
+{% details summary="[[ entry.setup.configuration.options.folding.title ]]" %}
+[% endif %]
+| Name | Description | Default | Required |
+|:----|:-----------|:-------|:--------:|
+[% for item in entry.setup.configuration.options.list %]
+| [[ item.name ]] | [[ item.description ]] | [[ item.default ]] | [[ item.required ]] |
+[% endfor %]
+
+[% for item in entry.setup.configuration.options.list %]
+[% if 'detailed_description' in item %]
+##### [[ item.name ]]
+
+[[ item.detailed_description ]]
+
+[% endif %]
+[% endfor %]
+[% if entry.setup.configuration.options.folding.enabled %]
+{% /details %}
+[% endif %]
+[% elif not entry.setup.configuration.options.description %]
+There are no configuration options.
+
+[% endif %]
+#### Examples
+[% if entry.setup.configuration.examples.list %]
+
+[% for example in entry.setup.configuration.examples.list %]
+##### [[ example.name ]]
+
+[[ example.description ]]
+
+[% if example.folding.enabled %]
+{% details summary="[[ entry.setup.configuration.examples.folding.title ]]" %}
+[% endif %]
+```yaml
+[[ example.config ]]
+```
+[% if example.folding.enabled %]
+{% /details %}
+[% endif %]
+[% endfor %]
+[% else%]
+There are no configuration examples.
+
+[% endif %]
+[% endif %]
diff --git a/integrations/templates/setup/sample-apps-config.md b/integrations/templates/setup/sample-apps-config.md
new file mode 100644
index 000000000..eb4837943
--- /dev/null
+++ b/integrations/templates/setup/sample-apps-config.md
@@ -0,0 +1,41 @@
+A custom format is used.
+
+Each configuration line has a form like:
+
+```
+group_name: app1 app2 app3
+```
+
+Where `group_name` defines an application group, and `app1`, `app2`, and `app3` are process names to match for
+that application group.
+
+Each group can be given multiple times, to add more processes to it.
+
+The process names are the ones returned by:
+
+ - `ps -e` or `/proc/PID/stat`
+ - in case of substring mode (see below): `/proc/PID/cmdline`
+
+To add process names with spaces, enclose them in quotes (single or double):
+`'Plex Media Serv' "my other process"`
+
+Note that spaces are not supported for process groups. Use a dash "-" instead.
+
+You can add an asterisk (\*) at the beginning and/or the end of a process to do wildcard matching:
+
+ - `*name` suffix mode: will search for processes ending with 'name' (/proc/PID/stat)
+ - `name*` prefix mode: will search for processes beginning with 'name' (/proc/PID/stat)
+ - `*name*` substring mode: will search for 'name' in the whole command line (/proc/PID/cmdline)
+
+If you enter even just one `*name*` (substring), apps.plugin will process /proc/PID/cmdline for all processes,
+just once (when they are first seen).
+
+To add processes with single quotes, enclose them in double quotes: "process with this ' single quote"
+
+To add processes with double quotes, enclose them in single quotes: 'process with this " double quote'
+
+The order of the entries in this list is important, the first that matches a process is used, so put important
+ones at the top. Processes not matched by any row, will inherit it from their parents or children.
+
+The order also controls the order of the dimensions on the generated charts (although applications started after
+apps.plugin is started, will be appended to the existing list of dimensions the netdata daemon maintains).
diff --git a/integrations/templates/setup/sample-charts-config.md b/integrations/templates/setup/sample-charts-config.md
new file mode 100644
index 000000000..affd2b35c
--- /dev/null
+++ b/integrations/templates/setup/sample-charts-config.md
@@ -0,0 +1,6 @@
+The file format is POSIX shell script. Generally, the structure is:
+
+```sh
+OPTION_1="some value"
+OPTION_2="some other value"
+```
diff --git a/integrations/templates/setup/sample-go-config.md b/integrations/templates/setup/sample-go-config.md
new file mode 100644
index 000000000..8be9abb5f
--- /dev/null
+++ b/integrations/templates/setup/sample-go-config.md
@@ -0,0 +1,9 @@
+The file format is YAML. Generally, the structure is:
+
+```yaml
+update_every: 1
+autodetection_retry: 0
+jobs:
+ - name: some_name1
+ - name: some_name1
+```
diff --git a/integrations/templates/setup/sample-netdata-config.md b/integrations/templates/setup/sample-netdata-config.md
new file mode 100644
index 000000000..429f71167
--- /dev/null
+++ b/integrations/templates/setup/sample-netdata-config.md
@@ -0,0 +1,10 @@
+The file format is a modified INI syntax. The general structure is:
+
+```toml
+[section1]
+ option 1 = some value
+ option 2 = some other value
+
+[section2]
+ option 3 = some third value
+```
diff --git a/integrations/templates/setup/sample-python-config.md b/integrations/templates/setup/sample-python-config.md
new file mode 100644
index 000000000..529674555
--- /dev/null
+++ b/integrations/templates/setup/sample-python-config.md
@@ -0,0 +1,10 @@
+The file format is YAML. Generally, the structure is:
+
+```yaml
+update_every: 1
+autodetection_retry: 0
+
+job_name:
+ job_option1: some_value
+ job_option2: some_other_vlaue
+```
diff --git a/integrations/templates/troubleshooting.md b/integrations/templates/troubleshooting.md
new file mode 100644
index 000000000..f78d49a7f
--- /dev/null
+++ b/integrations/templates/troubleshooting.md
@@ -0,0 +1,92 @@
+[% if entry.integration_type == 'collector' %]
+[% if entry.meta.plugin_name is in(['go.d.plugin', 'python.d.plugin', 'charts.d.plugin']) %]
+## Troubleshooting
+
+### Debug Mode
+
+To troubleshoot issues with the `[[ entry.meta.module_name ]]` collector, run the `[[ entry.meta.plugin_name ]]` with the debug option enabled. The output
+should give you clues as to why the collector isn't working.
+
+- Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
+ your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
+
+ ```bash
+ cd /usr/libexec/netdata/plugins.d/
+ ```
+
+- Switch to the `netdata` user.
+
+ ```bash
+ sudo -u netdata -s
+ ```
+
+[% if entry.meta.plugin_name == 'go.d.plugin' %]
+- Run the `go.d.plugin` to debug the collector:
+
+ ```bash
+ ./go.d.plugin -d -m [[ entry.meta.module_name ]]
+ ```
+
+[% elif entry.meta.plugin_name == 'python.d.plugin' %]
+- Run the `python.d.plugin` to debug the collector:
+
+ ```bash
+ ./python.d.plugin [[ entry.meta.module_name ]] debug trace
+ ```
+
+[% elif entry.meta.plugin_name == 'charts.d.plugin' %]
+- Run the `charts.d.plugin` to debug the collector:
+
+ ```bash
+ ./charts.d.plugin debug 1 [[ entry.meta.module_name ]]
+ ```
+
+[% endif %]
+[% else %]
+[% if entry.troubleshooting.problems.list %]
+## Troubleshooting
+
+[% endif %]
+[% endif %]
+[% elif entry.integration_type == 'notification' %]
+[% if 'cloud-notifications' in entry._src_path|string %]
+[% if entry.troubleshooting.problems.list %]
+## Troubleshooting
+
+[% endif %]
+[% else %]
+## Troubleshooting
+
+### Test Notification
+
+You can run the following command by hand, to test alerts configuration:
+
+```bash
+# become user netdata
+sudo su -s /bin/bash netdata
+
+# enable debugging info on the console
+export NETDATA_ALARM_NOTIFY_DEBUG=1
+
+# send test alarms to sysadmin
+/usr/libexec/netdata/plugins.d/alarm-notify.sh test
+
+# send test alarms to any role
+/usr/libexec/netdata/plugins.d/alarm-notify.sh test "ROLE"
+```
+
+Note that this will test _all_ alert mechanisms for the selected role.
+
+[% endif %]
+[% elif entry.integration_type == 'exporter' %]
+[% if entry.troubleshooting.problems.list %]
+## Troubleshooting
+
+[% endif %]
+[% endif %]
+[% for item in entry.troubleshooting.problems.list %]
+### [[ item.name ]]
+
+[[ description ]]
+
+[% endfor %]
diff --git a/libnetdata/Makefile.am b/libnetdata/Makefile.am
index b81d620ba..e85f4abe1 100644
--- a/libnetdata/Makefile.am
+++ b/libnetdata/Makefile.am
@@ -14,6 +14,7 @@ SUBDIRS = \
dictionary \
ebpf \
eval \
+ facets \
json \
july \
health \
diff --git a/libnetdata/buffer/buffer.c b/libnetdata/buffer/buffer.c
index b43762863..2d09bb1ff 100644
--- a/libnetdata/buffer/buffer.c
+++ b/libnetdata/buffer/buffer.c
@@ -15,6 +15,7 @@ void buffer_reset(BUFFER *wb) {
wb->options = 0;
wb->date = 0;
wb->expires = 0;
+ buffer_no_cacheable(wb);
buffer_overflow_check(wb);
}
@@ -254,6 +255,7 @@ BUFFER *buffer_create(size_t size, size_t *statistics)
b->size = size;
b->content_type = CT_TEXT_PLAIN;
b->statistics = statistics;
+ buffer_no_cacheable(b);
buffer_overflow_init(b);
buffer_overflow_check(b);
@@ -305,11 +307,11 @@ void buffer_increase(BUFFER *b, size_t free_size_required) {
// ----------------------------------------------------------------------------
void buffer_json_initialize(BUFFER *wb, const char *key_quote, const char *value_quote, int depth,
- bool add_anonymous_object, bool minify) {
+ bool add_anonymous_object, BUFFER_JSON_OPTIONS options) {
strncpyz(wb->json.key_quote, key_quote, BUFFER_QUOTE_MAX_SIZE);
strncpyz(wb->json.value_quote, value_quote, BUFFER_QUOTE_MAX_SIZE);
- wb->json.minify = minify;
+ wb->json.options = options;
wb->json.depth = (int8_t)(depth - 1);
_buffer_json_depth_push(wb, BUFFER_JSON_OBJECT);
@@ -317,6 +319,7 @@ void buffer_json_initialize(BUFFER *wb, const char *key_quote, const char *value
buffer_fast_strcat(wb, "{", 1);
wb->content_type = CT_APPLICATION_JSON;
+ buffer_no_cacheable(wb);
}
void buffer_json_finalize(BUFFER *wb) {
@@ -336,7 +339,7 @@ void buffer_json_finalize(BUFFER *wb) {
}
}
- if(!wb->json.minify)
+ if(!(wb->json.options & BUFFER_JSON_OPTIONS_MINIFY))
buffer_fast_strcat(wb, "\n", 1);
}
@@ -487,13 +490,13 @@ int buffer_unittest(void) {
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_finalize(wb);
errors += buffer_expect(wb, "{\n}\n");
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(wb, "hello", "world");
buffer_json_member_add_string(wb, "alpha", "this: \" is a double quote");
buffer_json_member_add_object(wb, "object1");
diff --git a/libnetdata/buffer/buffer.h b/libnetdata/buffer/buffer.h
index d0078a521..0f1540287 100644
--- a/libnetdata/buffer/buffer.h
+++ b/libnetdata/buffer/buffer.h
@@ -68,6 +68,12 @@ typedef enum __attribute__ ((__packed__)) {
CT_APPLICATION_ZIP,
} HTTP_CONTENT_TYPE;
+typedef enum __attribute__ ((__packed__)) {
+ BUFFER_JSON_OPTIONS_DEFAULT = 0,
+ BUFFER_JSON_OPTIONS_MINIFY = (1 << 0),
+ BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS = (1 << 1),
+} BUFFER_JSON_OPTIONS;
+
typedef struct web_buffer {
size_t size; // allocation size of buffer, in bytes
size_t len; // current data length in buffer, in bytes
@@ -82,7 +88,7 @@ typedef struct web_buffer {
char key_quote[BUFFER_QUOTE_MAX_SIZE + 1];
char value_quote[BUFFER_QUOTE_MAX_SIZE + 1];
int8_t depth;
- bool minify;
+ BUFFER_JSON_OPTIONS options;
BUFFER_JSON_NODE stack[BUFFER_JSON_MAX_DEPTH];
} json;
} BUFFER;
@@ -148,7 +154,7 @@ static inline void buffer_need_bytes(BUFFER *buffer, size_t needed_free_size) {
}
void buffer_json_initialize(BUFFER *wb, const char *key_quote, const char *value_quote, int depth,
- bool add_anonymous_object, bool minify);
+ bool add_anonymous_object, BUFFER_JSON_OPTIONS options);
void buffer_json_finalize(BUFFER *wb);
@@ -664,11 +670,16 @@ static inline void buffer_print_spaces(BUFFER *wb, size_t spaces) {
buffer_overflow_check(wb);
}
-static inline void buffer_print_json_comma_newline_spacing(BUFFER *wb) {
+static inline void buffer_print_json_comma(BUFFER *wb) {
if(wb->json.stack[wb->json.depth].count)
buffer_fast_strcat(wb, ",", 1);
+}
+
+static inline void buffer_print_json_comma_newline_spacing(BUFFER *wb) {
+ buffer_print_json_comma(wb);
- if(wb->json.minify)
+ if((wb->json.options & BUFFER_JSON_OPTIONS_MINIFY) ||
+ (wb->json.stack[wb->json.depth].type == BUFFER_JSON_ARRAY && !(wb->json.options & BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS)))
return;
buffer_fast_strcat(wb, "\n", 1);
@@ -715,7 +726,7 @@ static inline void buffer_json_object_close(BUFFER *wb) {
assert(wb->json.depth >= 0 && "BUFFER JSON: nothing is open to close it");
assert(wb->json.stack[wb->json.depth].type == BUFFER_JSON_OBJECT && "BUFFER JSON: an object is not open to close it");
#endif
- if(!wb->json.minify) {
+ if(!(wb->json.options & BUFFER_JSON_OPTIONS_MINIFY)) {
buffer_fast_strcat(wb, "\n", 1);
buffer_print_spaces(wb, wb->json.depth);
}
@@ -792,7 +803,14 @@ static inline void buffer_json_member_add_array(BUFFER *wb, const char *key) {
}
static inline void buffer_json_add_array_item_array(BUFFER *wb) {
- buffer_print_json_comma_newline_spacing(wb);
+ if(!(wb->json.options & BUFFER_JSON_OPTIONS_MINIFY) && wb->json.stack[wb->json.depth].type == BUFFER_JSON_ARRAY) {
+ // an array inside another array
+ buffer_print_json_comma(wb);
+ buffer_fast_strcat(wb, "\n", 1);
+ buffer_print_spaces(wb, wb->json.depth + 1);
+ }
+ else
+ buffer_print_json_comma_newline_spacing(wb);
buffer_fast_strcat(wb, "[", 1);
wb->json.stack[wb->json.depth].count++;
@@ -801,48 +819,42 @@ static inline void buffer_json_add_array_item_array(BUFFER *wb) {
}
static inline void buffer_json_add_array_item_string(BUFFER *wb, const char *value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_json_add_string_value(wb, value);
wb->json.stack[wb->json.depth].count++;
}
static inline void buffer_json_add_array_item_double(BUFFER *wb, NETDATA_DOUBLE value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_netdata_double(wb, value);
wb->json.stack[wb->json.depth].count++;
}
static inline void buffer_json_add_array_item_int64(BUFFER *wb, int64_t value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_int64(wb, value);
wb->json.stack[wb->json.depth].count++;
}
static inline void buffer_json_add_array_item_uint64(BUFFER *wb, uint64_t value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_uint64(wb, value);
wb->json.stack[wb->json.depth].count++;
}
static inline void buffer_json_add_array_item_time_t(BUFFER *wb, time_t value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_int64(wb, value);
wb->json.stack[wb->json.depth].count++;
}
static inline void buffer_json_add_array_item_time_ms(BUFFER *wb, time_t value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_int64(wb, value);
buffer_fast_strcat(wb, "000", 3);
@@ -850,8 +862,7 @@ static inline void buffer_json_add_array_item_time_ms(BUFFER *wb, time_t value)
}
static inline void buffer_json_add_array_item_time_t2ms(BUFFER *wb, time_t value) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_print_int64(wb, value);
buffer_fast_strcat(wb, "000", 3);
@@ -859,8 +870,7 @@ static inline void buffer_json_add_array_item_time_t2ms(BUFFER *wb, time_t value
}
static inline void buffer_json_add_array_item_object(BUFFER *wb) {
- if(wb->json.stack[wb->json.depth].count)
- buffer_fast_strcat(wb, ",", 1);
+ buffer_print_json_comma_newline_spacing(wb);
buffer_fast_strcat(wb, "{", 1);
wb->json.stack[wb->json.depth].count++;
@@ -919,6 +929,11 @@ static inline void buffer_json_array_close(BUFFER *wb) {
assert(wb->json.depth >= 0 && "BUFFER JSON: nothing is open to close it");
assert(wb->json.stack[wb->json.depth].type == BUFFER_JSON_ARRAY && "BUFFER JSON: an array is not open to close it");
#endif
+ if(wb->json.options & BUFFER_JSON_OPTIONS_NEWLINE_ON_ARRAY_ITEMS) {
+ buffer_fast_strcat(wb, "\n", 1);
+ buffer_print_spaces(wb, wb->json.depth);
+ }
+
buffer_fast_strcat(wb, "]", 1);
_buffer_json_depth_pop(wb);
}
@@ -928,6 +943,8 @@ typedef enum __attribute__((packed)) {
RRDF_FIELD_OPTS_UNIQUE_KEY = (1 << 0), // the field is the unique key of the row
RRDF_FIELD_OPTS_VISIBLE = (1 << 1), // the field should be visible by default
RRDF_FIELD_OPTS_STICKY = (1 << 2), // the field should be sticky
+ RRDF_FIELD_OPTS_FULL_WIDTH = (1 << 3), // the field should get full width
+ RRDF_FIELD_OPTS_WRAP = (1 << 4), // the field should get full width
} RRDF_FIELD_OPTIONS;
typedef enum __attribute__((packed)) {
@@ -969,7 +986,8 @@ static inline const char *rrdf_field_type_to_string(RRDF_FIELD_TYPE type) {
typedef enum __attribute__((packed)) {
RRDF_FIELD_VISUAL_VALUE, // show the value, possibly applying a transformation
RRDF_FIELD_VISUAL_BAR, // show the value and a bar, respecting the max field to fill the bar at 100%
- RRDF_FIELD_VISUAL_PILL, // array of values (transformation is respected)
+ RRDF_FIELD_VISUAL_PILL, //
+ RRDF_FIELD_VISUAL_MARKDOC, //
} RRDF_FIELD_VISUAL;
static inline const char *rrdf_field_visual_to_string(RRDF_FIELD_VISUAL visual) {
@@ -983,14 +1001,18 @@ static inline const char *rrdf_field_visual_to_string(RRDF_FIELD_VISUAL visual)
case RRDF_FIELD_VISUAL_PILL:
return "pill";
+
+ case RRDF_FIELD_VISUAL_MARKDOC:
+ return "markdoc";
}
}
typedef enum __attribute__((packed)) {
RRDF_FIELD_TRANSFORM_NONE, // show the value as-is
- RRDF_FIELD_TRANSFORM_NUMBER, // show the value repsecting the decimal_points
- RRDF_FIELD_TRANSFORM_DURATION, // transform as duration in second to a human readable duration
- RRDF_FIELD_TRANSFORM_DATETIME, // UNIX epoch timestamp in ms
+ RRDF_FIELD_TRANSFORM_NUMBER, // show the value respecting the decimal_points
+ RRDF_FIELD_TRANSFORM_DURATION_S, // transform as duration in second to a human-readable duration
+ RRDF_FIELD_TRANSFORM_DATETIME_MS, // UNIX epoch timestamp in ms
+ RRDF_FIELD_TRANSFORM_DATETIME_USEC, // UNIX epoch timestamp in usec
} RRDF_FIELD_TRANSFORM;
static inline const char *rrdf_field_transform_to_string(RRDF_FIELD_TRANSFORM transform) {
@@ -1002,11 +1024,14 @@ static inline const char *rrdf_field_transform_to_string(RRDF_FIELD_TRANSFORM tr
case RRDF_FIELD_TRANSFORM_NUMBER:
return "number";
- case RRDF_FIELD_TRANSFORM_DURATION:
+ case RRDF_FIELD_TRANSFORM_DURATION_S:
return "duration";
- case RRDF_FIELD_TRANSFORM_DATETIME:
+ case RRDF_FIELD_TRANSFORM_DATETIME_MS:
return "datetime";
+
+ case RRDF_FIELD_TRANSFORM_DATETIME_USEC:
+ return "datetime_usec";
}
}
@@ -1064,18 +1089,26 @@ static inline const char *rrdf_field_summary_to_string(RRDF_FIELD_SUMMARY summar
}
typedef enum __attribute__((packed)) {
+ RRDF_FIELD_FILTER_NONE,
RRDF_FIELD_FILTER_RANGE,
RRDF_FIELD_FILTER_MULTISELECT,
+ RRDF_FIELD_FILTER_FACET,
} RRDF_FIELD_FILTER;
static inline const char *rrdf_field_filter_to_string(RRDF_FIELD_FILTER filter) {
switch(filter) {
- default:
case RRDF_FIELD_FILTER_RANGE:
return "range";
case RRDF_FIELD_FILTER_MULTISELECT:
return "multiselect";
+
+ case RRDF_FIELD_FILTER_FACET:
+ return "facet";
+
+ default:
+ case RRDF_FIELD_FILTER_NONE:
+ return "none";
}
}
@@ -1114,6 +1147,9 @@ buffer_rrdf_table_add_field(BUFFER *wb, size_t field_id, const char *key, const
buffer_json_member_add_boolean(wb, "sticky", options & RRDF_FIELD_OPTS_STICKY);
buffer_json_member_add_string(wb, "summary", rrdf_field_summary_to_string(summary));
buffer_json_member_add_string(wb, "filter", rrdf_field_filter_to_string(filter));
+
+ buffer_json_member_add_boolean(wb, "full_width", options & RRDF_FIELD_OPTS_FULL_WIDTH);
+ buffer_json_member_add_boolean(wb, "wrap", options & RRDF_FIELD_OPTS_WRAP);
}
buffer_json_object_close(wb);
}
diff --git a/libnetdata/dyn_conf/dyn_conf.c b/libnetdata/dyn_conf/dyn_conf.c
new file mode 100644
index 000000000..3e098fb7f
--- /dev/null
+++ b/libnetdata/dyn_conf/dyn_conf.c
@@ -0,0 +1,909 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "dyn_conf.h"
+
+#define DYN_CONF_PATH_MAX (4096)
+#define DYN_CONF_DIR VARLIB_DIR "/etc"
+
+#define DYN_CONF_JOB_SCHEMA "job_schema"
+#define DYN_CONF_SCHEMA "schema"
+#define DYN_CONF_MODULE_LIST "modules"
+#define DYN_CONF_JOB_LIST "jobs"
+#define DYN_CONF_CFG_EXT ".cfg"
+
+DICTIONARY *plugins_dict = NULL;
+
+struct deferred_cfg_send {
+ char *plugin_name;
+ char *module_name;
+ char *job_name;
+ struct deferred_cfg_send *next;
+};
+
+struct deferred_cfg_send *deferred_configs = NULL;
+pthread_mutex_t deferred_configs_lock = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t deferred_configs_cond = PTHREAD_COND_INITIALIZER;
+
+static void deferred_config_push_back(const char *plugin_name, const char *module_name, const char *job_name)
+{
+ struct deferred_cfg_send *deferred = callocz(1, sizeof(struct deferred_cfg_send));
+ deferred->plugin_name = strdupz(plugin_name);
+ if (module_name != NULL) {
+ deferred->module_name = strdupz(module_name);
+ if (job_name != NULL)
+ deferred->job_name = strdupz(job_name);
+ }
+ pthread_mutex_lock(&deferred_configs_lock);
+ struct deferred_cfg_send *last = deferred_configs;
+ if (last == NULL)
+ deferred_configs = deferred;
+ else {
+ while (last->next != NULL)
+ last = last->next;
+ last->next = deferred;
+ }
+ pthread_cond_signal(&deferred_configs_cond);
+ pthread_mutex_unlock(&deferred_configs_lock);
+}
+
+static struct deferred_cfg_send *deferred_config_pop()
+{
+ pthread_mutex_lock(&deferred_configs_lock);
+ while (deferred_configs == NULL)
+ pthread_cond_wait(&deferred_configs_cond, &deferred_configs_lock);
+ struct deferred_cfg_send *deferred = deferred_configs;
+ deferred_configs = deferred_configs->next;
+ pthread_mutex_unlock(&deferred_configs_lock);
+ return deferred;
+}
+
+static void deferred_config_free(struct deferred_cfg_send *dcs)
+{
+ freez(dcs->plugin_name);
+ freez(dcs->module_name);
+ freez(dcs->job_name);
+ freez(dcs);
+}
+
+static int _get_list_of_plugins_json_cb(const DICTIONARY_ITEM *item, void *entry, void *data)
+{
+ UNUSED(item);
+ json_object *obj = (json_object *)data;
+ struct configurable_plugin *plugin = (struct configurable_plugin *)entry;
+
+ json_object *plugin_name = json_object_new_string(plugin->name);
+ json_object_array_add(obj, plugin_name);
+
+ return 0;
+}
+
+json_object *get_list_of_plugins_json()
+{
+ json_object *obj = json_object_new_array();
+
+ dictionary_walkthrough_read(plugins_dict, _get_list_of_plugins_json_cb, obj);
+
+ return obj;
+}
+
+static int _get_list_of_modules_json_cb(const DICTIONARY_ITEM *item, void *entry, void *data)
+{
+ UNUSED(item);
+ json_object *obj = (json_object *)data;
+ struct module *module = (struct module *)entry;
+
+ json_object *json_module = json_object_new_object();
+
+ json_object *json_item = json_object_new_string(module->name);
+ json_object_object_add(json_module, "name", json_item);
+ const char *module_type;
+ switch (module->type) {
+ case MOD_TYPE_SINGLE:
+ module_type = "single";
+ break;
+ case MOD_TYPE_ARRAY:
+ module_type = "job_array";
+ break;
+ default:
+ module_type = "unknown";
+ break;
+ }
+ json_item = json_object_new_string(module_type);
+ json_object_object_add(json_module, "type", json_item);
+
+ json_object_array_add(obj, json_module);
+
+ return 0;
+}
+
+json_object *get_list_of_modules_json(struct configurable_plugin *plugin)
+{
+ json_object *obj = json_object_new_array();
+
+ pthread_mutex_lock(&plugin->lock);
+
+ dictionary_walkthrough_read(plugin->modules, _get_list_of_modules_json_cb, obj);
+
+ pthread_mutex_unlock(&plugin->lock);
+
+ return obj;
+}
+
+const char *job_status2str(enum job_status status)
+{
+ switch (status) {
+ case JOB_STATUS_UNKNOWN:
+ return "unknown";
+ case JOB_STATUS_STOPPED:
+ return "stopped";
+ case JOB_STATUS_RUNNING:
+ return "running";
+ case JOB_STATUS_ERROR:
+ return "error";
+ default:
+ return "unknown";
+ }
+}
+
+static int _get_list_of_jobs_json_cb(const DICTIONARY_ITEM *item, void *entry, void *data)
+{
+ UNUSED(item);
+ json_object *obj = (json_object *)data;
+ struct job *job = (struct job *)entry;
+
+ json_object *json_job = json_object_new_object();
+ json_object *json_item = json_object_new_string(job->name);
+ json_object_object_add(json_job, "name", json_item);
+ json_item = json_object_new_string(job_status2str(job->status));
+ json_object_object_add(json_job, "state", json_item);
+ int64_t last_state_update_s = job->last_state_update / USEC_PER_SEC;
+ int64_t last_state_update_us = job->last_state_update % USEC_PER_SEC;
+
+ json_item = json_object_new_int64(last_state_update_s);
+ json_object_object_add(json_job, "last_state_update_s", json_item);
+
+ json_item = json_object_new_int64(last_state_update_us);
+ json_object_object_add(json_job, "last_state_update_us", json_item);
+
+ json_object_array_add(obj, json_job);
+
+ return 0;
+}
+
+json_object *get_list_of_jobs_json(struct module *module)
+{
+ json_object *obj = json_object_new_array();
+
+ pthread_mutex_lock(&module->lock);
+
+ dictionary_walkthrough_read(module->jobs, _get_list_of_jobs_json_cb, obj);
+
+ pthread_mutex_unlock(&module->lock);
+
+ return obj;
+}
+
+struct job *get_job_by_name(struct module *module, const char *job_name)
+{
+ return dictionary_get(module->jobs, job_name);
+}
+
+int remove_job(struct module *module, struct job *job)
+{
+ // as we are going to do unlink here we better make sure we have all to build proper path
+ if (unlikely(job->name == NULL || module == NULL || module->name == NULL || module->plugin == NULL || module->plugin->name == NULL))
+ return 0;
+
+ enum set_config_result rc = module->delete_job_cb(module->job_config_cb_usr_ctx, module->name, job->name);
+
+ if (rc != SET_CONFIG_ACCEPTED) {
+ error_report("DYNCFG module \"%s\" rejected delete job for \"%s\"", module->name, job->name);
+ return 0;
+ }
+
+ BUFFER *buffer = buffer_create(DYN_CONF_PATH_MAX, NULL);
+ buffer_sprintf(buffer, DYN_CONF_DIR "/%s/%s/%s" DYN_CONF_CFG_EXT, module->plugin->name, module->name, job->name);
+ unlink(buffer_tostring(buffer));
+ buffer_free(buffer);
+ return dictionary_del(module->jobs, job->name);
+}
+
+struct module *get_module_by_name(struct configurable_plugin *plugin, const char *module_name)
+{
+ return dictionary_get(plugin->modules, module_name);
+}
+
+inline struct configurable_plugin *get_plugin_by_name(const char *name)
+{
+ return dictionary_get(plugins_dict, name);
+}
+
+static int store_config(const char *module_name, const char *submodule_name, const char *cfg_idx, dyncfg_config_t cfg)
+{
+ BUFFER *filename = buffer_create(DYN_CONF_PATH_MAX, NULL);
+ buffer_sprintf(filename, DYN_CONF_DIR "/%s", module_name);
+ if (mkdir(buffer_tostring(filename), 0755) == -1) {
+ if (errno != EEXIST) {
+ netdata_log_error("DYNCFG store_config: failed to create module directory %s", buffer_tostring(filename));
+ buffer_free(filename);
+ return 1;
+ }
+ }
+
+ if (submodule_name != NULL) {
+ buffer_sprintf(filename, "/%s", submodule_name);
+ if (mkdir(buffer_tostring(filename), 0755) == -1) {
+ if (errno != EEXIST) {
+ netdata_log_error("DYNCFG store_config: failed to create submodule directory %s", buffer_tostring(filename));
+ buffer_free(filename);
+ return 1;
+ }
+ }
+ }
+
+ if (cfg_idx != NULL)
+ buffer_sprintf(filename, "/%s", cfg_idx);
+
+ buffer_strcat(filename, DYN_CONF_CFG_EXT);
+
+
+ error_report("DYNCFG store_config: %s", buffer_tostring(filename));
+
+ //write to file
+ FILE *f = fopen(buffer_tostring(filename), "w");
+ if (f == NULL) {
+ error_report("DYNCFG store_config: failed to open %s for writing", buffer_tostring(filename));
+ buffer_free(filename);
+ return 1;
+ }
+
+ fwrite(cfg.data, cfg.data_size, 1, f);
+ fclose(f);
+
+ buffer_free(filename);
+ return 0;
+}
+
+dyncfg_config_t load_config(const char *plugin_name, const char *module_name, const char *job_id)
+{
+ BUFFER *filename = buffer_create(DYN_CONF_PATH_MAX, NULL);
+ buffer_sprintf(filename, DYN_CONF_DIR "/%s", plugin_name);
+ if (module_name != NULL)
+ buffer_sprintf(filename, "/%s", module_name);
+
+ if (job_id != NULL)
+ buffer_sprintf(filename, "/%s", job_id);
+
+ buffer_strcat(filename, DYN_CONF_CFG_EXT);
+
+ dyncfg_config_t config;
+ long bytes;
+ config.data = read_by_filename(buffer_tostring(filename), &bytes);
+
+ if (config.data == NULL)
+ error_report("DYNCFG load_config: failed to load config from %s", buffer_tostring(filename));
+
+ config.data_size = bytes;
+
+ buffer_free(filename);
+
+ return config;
+}
+
+char *set_plugin_config(struct configurable_plugin *plugin, dyncfg_config_t cfg)
+{
+ enum set_config_result rc = plugin->set_config_cb(plugin->cb_usr_ctx, &cfg);
+ if (rc != SET_CONFIG_ACCEPTED) {
+ error_report("DYNCFG plugin \"%s\" rejected config", plugin->name);
+ return "plugin rejected config";
+ }
+
+ if (store_config(plugin->name, NULL, NULL, cfg)) {
+ error_report("DYNCFG could not store config for module \"%s\"", plugin->name);
+ return "could not store config on disk";
+ }
+ return NULL;
+}
+
+static char *set_module_config(struct module *mod, dyncfg_config_t cfg)
+{
+ struct configurable_plugin *plugin = mod->plugin;
+
+ enum set_config_result rc = mod->set_config_cb(mod->config_cb_usr_ctx, mod->name, &cfg);
+ if (rc != SET_CONFIG_ACCEPTED) {
+ error_report("DYNCFG module \"%s\" rejected config", plugin->name);
+ return "module rejected config";
+ }
+
+ if (store_config(plugin->name, mod->name, NULL, cfg)) {
+ error_report("DYNCFG could not store config for module \"%s\"", mod->name);
+ return "could not store config on disk";
+ }
+
+ return NULL;
+}
+
+struct job *job_new()
+{
+ struct job *job = callocz(1, sizeof(struct job));
+ job->state = JOB_STATUS_UNKNOWN;
+ job->last_state_update = now_realtime_usec();
+ return job;
+}
+
+static int set_job_config(struct job *job, dyncfg_config_t cfg)
+{
+ struct module *mod = job->module;
+ enum set_config_result rt = mod->set_job_config_cb(mod->job_config_cb_usr_ctx, mod->name, job->name, &cfg);
+
+ if (rt != SET_CONFIG_ACCEPTED) {
+ error_report("DYNCFG module \"%s\" rejected config for job \"%s\"", mod->name, job->name);
+ return 1;
+ }
+
+ if (store_config(mod->plugin->name, mod->name, job->name, cfg)) {
+ error_report("DYNCFG could not store config for module \"%s\"", mod->name);
+ return 1;
+ }
+
+ return 0;
+}
+
+struct job *add_job(struct module *mod, const char *job_id, dyncfg_config_t cfg)
+{
+ struct job *job = job_new();
+ job->name = strdupz(job_id);
+ job->module = mod;
+
+ if (set_job_config(job, cfg)) {
+ freez(job->name);
+ freez(job);
+ return NULL;
+ }
+
+ dictionary_set(mod->jobs, job->name, job, sizeof(job));
+
+ return job;
+
+}
+
+void module_del_cb(const DICTIONARY_ITEM *item, void *value, void *data)
+{
+ UNUSED(item);
+ UNUSED(data);
+ struct module *mod = (struct module *)value;
+ dictionary_destroy(mod->jobs);
+ freez(mod->name);
+ freez(mod);
+}
+
+
+const DICTIONARY_ITEM *register_plugin(struct configurable_plugin *plugin)
+{
+ if (get_plugin_by_name(plugin->name) != NULL) {
+ error_report("DYNCFG plugin \"%s\" already registered", plugin->name);
+ return NULL;
+ }
+
+ if (plugin->set_config_cb == NULL) {
+ error_report("DYNCFG plugin \"%s\" has no set_config_cb", plugin->name);
+ return NULL;
+ }
+
+ pthread_mutex_init(&plugin->lock, NULL);
+
+ plugin->modules = dictionary_create(DICT_OPTION_VALUE_LINK_DONT_CLONE);
+ dictionary_register_delete_callback(plugin->modules, module_del_cb, NULL);
+
+ deferred_config_push_back(plugin->name, NULL, NULL);
+
+ dictionary_set(plugins_dict, plugin->name, plugin, sizeof(plugin));
+
+ // the plugin keeps the pointer to the dictionary item, so we need to acquire it
+ return dictionary_get_and_acquire_item(plugins_dict, plugin->name);
+}
+
+void unregister_plugin(const DICTIONARY_ITEM *plugin)
+{
+ struct configurable_plugin *plug = dictionary_acquired_item_value(plugin);
+ dictionary_acquired_item_release(plugins_dict, plugin);
+ dictionary_del(plugins_dict, plug->name);
+}
+
+void job_del_cb(const DICTIONARY_ITEM *item, void *value, void *data)
+{
+ UNUSED(item);
+ UNUSED(data);
+ struct job *job = (struct job *)value;
+ freez(job->reason);
+ freez(job->name);
+ freez(job);
+}
+
+int register_module(struct configurable_plugin *plugin, struct module *module)
+{
+ if (get_module_by_name(plugin, module->name) != NULL) {
+ error_report("DYNCFG module \"%s\" already registered", module->name);
+ return 1;
+ }
+
+ pthread_mutex_init(&module->lock, NULL);
+
+ deferred_config_push_back(plugin->name, module->name, NULL);
+
+ module->plugin = plugin;
+
+ if (module->type == MOD_TYPE_ARRAY) {
+ module->jobs = dictionary_create(DICT_OPTION_VALUE_LINK_DONT_CLONE);
+ dictionary_register_delete_callback(module->jobs, job_del_cb, NULL);
+
+ // load all jobs from disk
+ BUFFER *path = buffer_create(DYN_CONF_PATH_MAX, NULL);
+ buffer_sprintf(path, "%s/%s/%s", DYN_CONF_DIR, plugin->name, module->name);
+ DIR *dir = opendir(buffer_tostring(path));
+ if (dir != NULL) {
+ struct dirent *ent;
+ while ((ent = readdir(dir)) != NULL) {
+ if (ent->d_name[0] == '.')
+ continue;
+ if (ent->d_type != DT_REG)
+ continue;
+ size_t len = strnlen(ent->d_name, NAME_MAX);
+ if (len <= strlen(DYN_CONF_CFG_EXT))
+ continue;
+ if (strcmp(ent->d_name + len - strlen(DYN_CONF_CFG_EXT), DYN_CONF_CFG_EXT) != 0)
+ continue;
+ ent->d_name[len - strlen(DYN_CONF_CFG_EXT)] = '\0';
+
+ struct job *job = job_new();
+ job->name = strdupz(ent->d_name);
+ job->module = module;
+ dictionary_set(module->jobs, job->name, job, sizeof(job));
+
+ deferred_config_push_back(plugin->name, module->name, job->name);
+ }
+ closedir(dir);
+ }
+ buffer_free(path);
+ }
+
+ dictionary_set(plugin->modules, module->name, module, sizeof(module));
+
+ return 0;
+}
+
+void freez_dyncfg(void *ptr) {
+ freez(ptr);
+}
+
+static void handle_dyncfg_root(struct uni_http_response *resp, int method)
+{
+ if (method != HTTP_METHOD_GET) {
+ resp->content = "method not allowed";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+ return;
+ }
+ json_object *obj = get_list_of_plugins_json();
+ json_object *wrapper = json_object_new_object();
+ json_object_object_add(wrapper, "configurable_plugins", obj);
+ resp->content = strdupz(json_object_to_json_string_ext(wrapper, JSON_C_TO_STRING_PRETTY));
+ json_object_put(wrapper);
+ resp->status = HTTP_RESP_OK;
+ resp->content_type = CT_APPLICATION_JSON;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = strlen(resp->content);
+}
+
+static void handle_plugin_root(struct uni_http_response *resp, int method, struct configurable_plugin *plugin, void *post_payload, size_t post_payload_size)
+{
+ switch(method) {
+ case HTTP_METHOD_GET:
+ {
+ dyncfg_config_t cfg = plugin->get_config_cb(plugin->cb_usr_ctx);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ }
+ case HTTP_METHOD_PUT:
+ {
+ char *response;
+ if (post_payload == NULL) {
+ resp->content = "no payload";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ return;
+ }
+ dyncfg_config_t cont = {
+ .data = post_payload,
+ .data_size = post_payload_size
+ };
+ response = set_plugin_config(plugin, cont);
+ if (response == NULL) {
+ resp->status = HTTP_RESP_OK;
+ resp->content = "OK";
+ resp->content_length = strlen(resp->content);
+ } else {
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ resp->content = response;
+ resp->content_length = strlen(resp->content);
+ }
+ return;
+ }
+ default:
+ resp->content = "method not allowed";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+ return;
+ }
+}
+
+void handle_module_root(struct uni_http_response *resp, int method, struct configurable_plugin *plugin, const char *module, void *post_payload, size_t post_payload_size)
+{
+ if (strncmp(module, DYN_CONF_SCHEMA, strlen(DYN_CONF_SCHEMA)) == 0) {
+ dyncfg_config_t cfg = plugin->get_config_schema_cb(plugin->cb_usr_ctx);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ }
+ if (strncmp(module, DYN_CONF_MODULE_LIST, strlen(DYN_CONF_MODULE_LIST)) == 0) {
+ if (method != HTTP_METHOD_GET) {
+ resp->content = "method not allowed (only GET)";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+ return;
+ }
+ json_object *obj = get_list_of_modules_json(plugin);
+ json_object *wrapper = json_object_new_object();
+ json_object_object_add(wrapper, "modules", obj);
+ resp->content = strdupz(json_object_to_json_string_ext(wrapper, JSON_C_TO_STRING_PRETTY));
+ json_object_put(wrapper);
+ resp->status = HTTP_RESP_OK;
+ resp->content_type = CT_APPLICATION_JSON;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ struct module *mod = get_module_by_name(plugin, module);
+ if (mod == NULL) {
+ resp->content = "module not found";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_NOT_FOUND;
+ return;
+ }
+ if (method == HTTP_METHOD_GET) {
+ dyncfg_config_t cfg = mod->get_config_cb(mod->config_cb_usr_ctx, mod->name);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ } else if (method == HTTP_METHOD_PUT) {
+ char *response;
+ if (post_payload == NULL) {
+ resp->content = "no payload";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ return;
+ }
+ dyncfg_config_t cont = {
+ .data = post_payload,
+ .data_size = post_payload_size
+ };
+ response = set_module_config(mod, cont);
+ if (response == NULL) {
+ resp->status = HTTP_RESP_OK;
+ resp->content = "OK";
+ resp->content_length = strlen(resp->content);
+ } else {
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ resp->content = response;
+ resp->content_length = strlen(resp->content);
+ }
+ return;
+ }
+ resp->content = "method not allowed";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+}
+
+static inline void _handle_job_root(struct uni_http_response *resp, int method, struct module *mod, const char *job_id, void *post_payload, size_t post_payload_size, struct job *job)
+{
+ if (method == HTTP_METHOD_POST) {
+ if (job != NULL) {
+ resp->content = "can't POST, job already exists (use PUT to update?)";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ return;
+ }
+ if (post_payload == NULL) {
+ resp->content = "no payload";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ return;
+ }
+ dyncfg_config_t cont = {
+ .data = post_payload,
+ .data_size = post_payload_size
+ };
+ job = add_job(mod, job_id, cont);
+ if (job == NULL) {
+ resp->content = "failed to add job";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_INTERNAL_SERVER_ERROR;
+ return;
+ }
+ resp->status = HTTP_RESP_OK;
+ resp->content = "OK";
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ if (job == NULL) {
+ resp->content = "job not found";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_NOT_FOUND;
+ return;
+ }
+ switch (method) {
+ case HTTP_METHOD_GET:
+ {
+ dyncfg_config_t cfg = mod->get_job_config_cb(mod->job_config_cb_usr_ctx, mod->name, job->name);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ }
+ case HTTP_METHOD_PUT:
+ {
+ if (post_payload == NULL) {
+ resp->content = "missing payload";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ return;
+ }
+ dyncfg_config_t cont = {
+ .data = post_payload,
+ .data_size = post_payload_size
+ };
+ if(set_job_config(job, cont)) {
+ resp->status = HTTP_RESP_BAD_REQUEST;
+ resp->content = "failed to set job config";
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ resp->status = HTTP_RESP_OK;
+ resp->content = "OK";
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ case HTTP_METHOD_DELETE:
+ {
+ if (!remove_job(mod, job)) {
+ resp->content = "failed to remove job";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_INTERNAL_SERVER_ERROR;
+ return;
+ }
+ resp->status = HTTP_RESP_OK;
+ resp->content = "OK";
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ default:
+ resp->content = "method not allowed (only GET, PUT, DELETE)";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+ return;
+ }
+}
+
+void handle_job_root(struct uni_http_response *resp, int method, struct module *mod, const char *job_id, void *post_payload, size_t post_payload_size)
+{
+ if (strncmp(job_id, DYN_CONF_SCHEMA, strlen(DYN_CONF_SCHEMA)) == 0) {
+ dyncfg_config_t cfg = mod->get_config_schema_cb(mod->config_cb_usr_ctx, mod->name);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ }
+ if (strncmp(job_id, DYN_CONF_JOB_SCHEMA, strlen(DYN_CONF_JOB_SCHEMA)) == 0) {
+ dyncfg_config_t cfg = mod->get_job_config_schema_cb(mod->job_config_cb_usr_ctx, mod->name);
+ resp->content = mallocz(cfg.data_size);
+ memcpy(resp->content, cfg.data, cfg.data_size);
+ resp->status = HTTP_RESP_OK;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = cfg.data_size;
+ return;
+ }
+ if (strncmp(job_id, DYN_CONF_JOB_LIST, strlen(DYN_CONF_JOB_LIST)) == 0) {
+ if (mod->type != MOD_TYPE_ARRAY) {
+ resp->content = "module type is not job_array (can't get the list of jobs)";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_NOT_FOUND;
+ return;
+ }
+ if (method != HTTP_METHOD_GET) {
+ resp->content = "method not allowed (only GET)";
+ resp->content_length = strlen(resp->content);
+ resp->status = HTTP_RESP_METHOD_NOT_ALLOWED;
+ return;
+ }
+ json_object *obj = get_list_of_jobs_json(mod);
+ json_object *wrapper = json_object_new_object();
+ json_object_object_add(wrapper, "jobs", obj);
+ resp->content = strdupz(json_object_to_json_string_ext(wrapper, JSON_C_TO_STRING_PRETTY));
+ json_object_put(wrapper);
+ resp->status = HTTP_RESP_OK;
+ resp->content_type = CT_APPLICATION_JSON;
+ resp->content_free = freez_dyncfg;
+ resp->content_length = strlen(resp->content);
+ return;
+ }
+ const DICTIONARY_ITEM *job_item = dictionary_get_and_acquire_item(mod->jobs, job_id);
+ struct job *job = dictionary_acquired_item_value(job_item);
+
+ _handle_job_root(resp, method, mod, job_id, post_payload, post_payload_size, job);
+
+ dictionary_acquired_item_release(mod->jobs, job_item);
+}
+
+struct uni_http_response dyn_conf_process_http_request(int method, const char *plugin, const char *module, const char *job_id, void *post_payload, size_t post_payload_size)
+{
+ struct uni_http_response resp = {
+ .status = HTTP_RESP_INTERNAL_SERVER_ERROR,
+ .content_type = CT_TEXT_PLAIN,
+ .content = HTTP_RESP_INTERNAL_SERVER_ERROR_STR,
+ .content_free = NULL,
+ .content_length = 0
+ };
+ if (plugin == NULL) {
+ handle_dyncfg_root(&resp, method);
+ return resp;
+ }
+ const DICTIONARY_ITEM *plugin_item = dictionary_get_and_acquire_item(plugins_dict, plugin);
+ if (plugin_item == NULL) {
+ resp.content = "plugin not found";
+ resp.content_length = strlen(resp.content);
+ resp.status = HTTP_RESP_NOT_FOUND;
+ return resp;
+ }
+ struct configurable_plugin *plug = dictionary_acquired_item_value(plugin_item);
+ if (module == NULL) {
+ handle_plugin_root(&resp, method, plug, post_payload, post_payload_size);
+ goto EXIT_PLUGIN;
+ }
+ if (job_id == NULL) {
+ handle_module_root(&resp, method, plug, module, post_payload, post_payload_size);
+ goto EXIT_PLUGIN;
+ }
+ // for modules we do not do get_and_acquire as modules are never removed (only together with the plugin)
+ struct module *mod = get_module_by_name(plug, module);
+ if (mod == NULL) {
+ resp.content = "module not found";
+ resp.content_length = strlen(resp.content);
+ resp.status = HTTP_RESP_NOT_FOUND;
+ goto EXIT_PLUGIN;
+ }
+ if (mod->type != MOD_TYPE_ARRAY) {
+ resp.content = "module is not array";
+ resp.content_length = strlen(resp.content);
+ resp.status = HTTP_RESP_NOT_FOUND;
+ goto EXIT_PLUGIN;
+ }
+ handle_job_root(&resp, method, mod, job_id, post_payload, post_payload_size);
+
+EXIT_PLUGIN:
+ dictionary_acquired_item_release(plugins_dict, plugin_item);
+ return resp;
+}
+
+void plugin_del_cb(const DICTIONARY_ITEM *item, void *value, void *data)
+{
+ UNUSED(item);
+ UNUSED(data);
+ struct configurable_plugin *plugin = (struct configurable_plugin *)value;
+ dictionary_destroy(plugin->modules);
+ freez(plugin->name);
+ freez(plugin);
+}
+
+void report_job_status(struct configurable_plugin *plugin, const char *module_name, const char *job_name, enum job_status status, int status_code, char *reason)
+{
+ const DICTIONARY_ITEM *item = dictionary_get_and_acquire_item(plugins_dict, plugin->name);
+ if (item == NULL) {
+ netdata_log_error("plugin %s not found", plugin->name);
+ return;
+ }
+ struct configurable_plugin *plug = dictionary_acquired_item_value(item);
+ struct module *mod = get_module_by_name(plug, module_name);
+ if (mod == NULL) {
+ netdata_log_error("module %s not found", module_name);
+ goto EXIT_PLUGIN;
+ }
+ if (mod->type != MOD_TYPE_ARRAY) {
+ netdata_log_error("module %s is not array", module_name);
+ goto EXIT_PLUGIN;
+ }
+ const DICTIONARY_ITEM *job_item = dictionary_get_and_acquire_item(mod->jobs, job_name);
+ if (job_item == NULL) {
+ netdata_log_error("job %s not found", job_name);
+ goto EXIT_PLUGIN;
+ }
+ struct job *job = dictionary_acquired_item_value(job_item);
+ job->status = status;
+ job->state = status_code;
+ if (job->reason != NULL) {
+ freez(job->reason);
+ }
+ job->reason = reason;
+ job->last_state_update = now_realtime_usec();
+
+ dictionary_acquired_item_release(mod->jobs, job_item);
+
+EXIT_PLUGIN:
+ dictionary_acquired_item_release(plugins_dict, item);
+}
+
+int dyn_conf_init(void)
+{
+ if (mkdir(DYN_CONF_DIR, 0755) == -1) {
+ if (errno != EEXIST) {
+ netdata_log_error("failed to create directory for dynamic configuration");
+ return 1;
+ }
+ }
+
+ plugins_dict = dictionary_create(DICT_OPTION_VALUE_LINK_DONT_CLONE);
+ dictionary_register_delete_callback(plugins_dict, plugin_del_cb, NULL);
+
+ return 0;
+}
+
+void *dyncfg_main(void *in)
+{
+ while (!netdata_exit) {
+ struct deferred_cfg_send *dcs = deferred_config_pop();
+ const DICTIONARY_ITEM *plugin_item = dictionary_get_and_acquire_item(plugins_dict, dcs->plugin_name);
+ if (plugin_item == NULL) {
+ error_report("DYNCFG, plugin %s not found", dcs->plugin_name);
+ deferred_config_free(dcs);
+ continue;
+ }
+ struct configurable_plugin *plugin = dictionary_acquired_item_value(plugin_item);
+ if (dcs->module_name == NULL) {
+ dyncfg_config_t cfg = load_config(dcs->plugin_name, NULL, NULL);
+ if (cfg.data != NULL) {
+ plugin->set_config_cb(plugin->cb_usr_ctx, &cfg);
+ freez(cfg.data);
+ }
+ } else if (dcs->job_name == NULL) {
+ dyncfg_config_t cfg = load_config(dcs->plugin_name, dcs->module_name, NULL);
+ if (cfg.data != NULL) {
+ struct module *mod = get_module_by_name(plugin, dcs->module_name);
+ mod->set_config_cb(mod->config_cb_usr_ctx, mod->name, &cfg);
+ freez(cfg.data);
+ }
+ } else {
+ dyncfg_config_t cfg = load_config(dcs->plugin_name, dcs->module_name, dcs->job_name);
+ if (cfg.data != NULL) {
+ struct module *mod = get_module_by_name(plugin, dcs->module_name);
+ mod->set_job_config_cb(mod->job_config_cb_usr_ctx, mod->name, dcs->job_name, &cfg);
+ freez(cfg.data);
+ }
+ }
+ deferred_config_free(dcs);
+ dictionary_acquired_item_release(plugins_dict, plugin_item);
+ }
+ return NULL;
+}
diff --git a/libnetdata/dyn_conf/dyn_conf.h b/libnetdata/dyn_conf/dyn_conf.h
new file mode 100644
index 000000000..f10ae6a12
--- /dev/null
+++ b/libnetdata/dyn_conf/dyn_conf.h
@@ -0,0 +1,136 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#ifndef DYN_CONF_H
+#define DYN_CONF_H
+
+#include "../libnetdata.h"
+
+enum module_type {
+ MOD_TYPE_UNKNOWN = 0,
+ MOD_TYPE_ARRAY,
+ MOD_TYPE_SINGLE
+};
+
+static inline enum module_type str2_module_type(const char *type_name)
+{
+ if (strcmp(type_name, "job_array") == 0)
+ return MOD_TYPE_ARRAY;
+ else if (strcmp(type_name, "single") == 0)
+ return MOD_TYPE_SINGLE;
+ return MOD_TYPE_UNKNOWN;
+}
+
+struct dyncfg_config {
+ void *data;
+ size_t data_size;
+};
+
+typedef struct dyncfg_config dyncfg_config_t;
+
+struct configurable_plugin;
+struct module;
+
+enum job_status {
+ JOB_STATUS_UNKNOWN = 0, // State used until plugin reports first status
+ JOB_STATUS_STOPPED,
+ JOB_STATUS_RUNNING,
+ JOB_STATUS_ERROR
+};
+
+inline enum job_status str2job_state(const char *state_name) {
+ if (strcmp(state_name, "stopped") == 0)
+ return JOB_STATUS_STOPPED;
+ else if (strcmp(state_name, "running") == 0)
+ return JOB_STATUS_RUNNING;
+ else if (strcmp(state_name, "error") == 0)
+ return JOB_STATUS_ERROR;
+ return JOB_STATUS_UNKNOWN;
+}
+
+enum set_config_result {
+ SET_CONFIG_ACCEPTED = 0,
+ SET_CONFIG_REJECTED,
+ SET_CONFIG_DEFFER
+};
+
+struct job
+{
+ char *name;
+
+ //state reported by config
+ enum job_status status; // reported by plugin, enum as this has to be interpreted by UI
+ int state; // code reported by plugin which can mean anything plugin wants
+ char *reason; // reported by plugin, can be NULL (optional)
+
+ usec_t last_state_update;
+
+ struct module *module;
+};
+
+struct module
+{
+ pthread_mutex_t lock;
+ char *name;
+ enum module_type type;
+
+ struct configurable_plugin *plugin;
+
+ // module config
+ enum set_config_result (*set_config_cb)(void *usr_ctx, const char *module_name, dyncfg_config_t *cfg);
+ dyncfg_config_t (*get_config_cb)(void *usr_ctx, const char *name);
+ dyncfg_config_t (*get_config_schema_cb)(void *usr_ctx, const char *name);
+ void *config_cb_usr_ctx;
+
+ DICTIONARY *jobs;
+
+ // jobs config
+ dyncfg_config_t (*get_job_config_cb)(void *usr_ctx, const char *module_name, const char *job_name);
+ dyncfg_config_t (*get_job_config_schema_cb)(void *usr_ctx, const char *module_name);
+ enum set_config_result (*set_job_config_cb)(void *usr_ctx, const char *module_name, const char *job_name, dyncfg_config_t *cfg);
+ enum set_config_result (*delete_job_cb)(void *usr_ctx, const char *module_name, const char *job_name);
+ void *job_config_cb_usr_ctx;
+};
+
+struct configurable_plugin {
+ pthread_mutex_t lock;
+ char *name;
+ DICTIONARY *modules;
+ const char *schema;
+
+ dyncfg_config_t (*get_config_cb)(void *usr_ctx);
+ dyncfg_config_t (*get_config_schema_cb)(void *usr_ctx);
+ enum set_config_result (*set_config_cb)(void *usr_ctx, dyncfg_config_t *cfg);
+ void *cb_usr_ctx; // context for all callbacks (split if needed in future)
+};
+
+// API to be used by plugins
+const DICTIONARY_ITEM *register_plugin(struct configurable_plugin *plugin);
+void unregister_plugin(const DICTIONARY_ITEM *plugin);
+int register_module(struct configurable_plugin *plugin, struct module *module);
+
+void report_job_status(struct configurable_plugin *plugin, const char *module_name, const char *job_name, enum job_status status, int status_code, char *reason);
+
+// API to be used by the web server(s)
+json_object *get_list_of_plugins_json();
+struct configurable_plugin *get_plugin_by_name(const char *name);
+
+json_object *get_list_of_modules_json(struct configurable_plugin *plugin);
+struct module *get_module_by_name(struct configurable_plugin *plugin, const char *module_name);
+
+// helper struct to make interface between internal webserver and h2o same
+struct uni_http_response {
+ int status;
+ char *content;
+ size_t content_length;
+ HTTP_CONTENT_TYPE content_type;
+ void (*content_free)(void *);
+};
+
+struct uni_http_response dyn_conf_process_http_request(int method, const char *plugin, const char *module, const char *job_id, void *payload, size_t payload_size);
+
+// API to be used by main netdata process, initialization and destruction etc.
+int dyn_conf_init(void);
+void freez_dyncfg(void *ptr);
+void *dyncfg_main(void *in);
+
+#endif //DYN_CONF_H
diff --git a/libnetdata/ebpf/ebpf.h b/libnetdata/ebpf/ebpf.h
index 88dbca379..691a4c26e 100644
--- a/libnetdata/ebpf/ebpf.h
+++ b/libnetdata/ebpf/ebpf.h
@@ -181,6 +181,17 @@ enum netdata_controller {
NETDATA_CONTROLLER_APPS_ENABLED,
NETDATA_CONTROLLER_APPS_LEVEL,
+ // These index show the number of elements
+ // stored inside hash tables.
+ //
+ // We have indexes to count increase and
+ // decrease events, because __sync_fetch_and_sub
+ // generates compilation errors.
+ NETDATA_CONTROLLER_PID_TABLE_ADD,
+ NETDATA_CONTROLLER_PID_TABLE_DEL,
+ NETDATA_CONTROLLER_TEMP_TABLE_ADD,
+ NETDATA_CONTROLLER_TEMP_TABLE_DEL,
+
NETDATA_CONTROLLER_END
};
@@ -278,6 +289,17 @@ enum ebpf_threads_status {
NETDATA_THREAD_EBPF_NOT_RUNNING // thread was never started
};
+enum ebpf_global_table_values {
+ NETDATA_EBPF_GLOBAL_TABLE_PID_TABLE_ADD, // Count elements added inside PID table
+ NETDATA_EBPF_GLOBAL_TABLE_PID_TABLE_DEL, // Count elements removed from PID table
+ NETDATA_EBPF_GLOBAL_TABLE_TEMP_TABLE_ADD, // Count elements added inside TEMP table
+ NETDATA_EBPF_GLOBAL_TABLE_TEMP_TABLE_DEL, // Count elements removed from TEMP table
+
+ NETDATA_EBPF_GLOBAL_TABLE_STATUS_END
+};
+
+typedef uint64_t netdata_idx_t;
+
typedef struct ebpf_module {
const char *thread_name;
const char *config_name;
@@ -313,11 +335,13 @@ typedef struct ebpf_module {
// period to run
uint32_t running_time; // internal usage, this is used to reset a value when a new request happens.
uint32_t lifetime;
+
+ netdata_idx_t hash_table_stats[NETDATA_EBPF_GLOBAL_TABLE_STATUS_END];
} ebpf_module_t;
#define EBPF_DEFAULT_LIFETIME 300
-// This will be present until all functions are merged
-#define EBPF_NON_FUNCTION_LIFE_TIME 86400
+// This will be present until all functions are merged. The deadline is planned for 68 years since plugin start
+#define EBPF_NON_FUNCTION_LIFE_TIME UINT_MAX
int ebpf_get_kernel_version();
int get_redhat_release();
diff --git a/libnetdata/facets/Makefile.am b/libnetdata/facets/Makefile.am
new file mode 100644
index 000000000..161784b8f
--- /dev/null
+++ b/libnetdata/facets/Makefile.am
@@ -0,0 +1,8 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+AUTOMAKE_OPTIONS = subdir-objects
+MAINTAINERCLEANFILES = $(srcdir)/Makefile.in
+
+dist_noinst_DATA = \
+ README.md \
+ $(NULL)
diff --git a/libnetdata/facets/README.md b/libnetdata/facets/README.md
new file mode 100644
index 000000000..e69de29bb
diff --git a/libnetdata/facets/facets.c b/libnetdata/facets/facets.c
new file mode 100644
index 000000000..8762b43b9
--- /dev/null
+++ b/libnetdata/facets/facets.c
@@ -0,0 +1,851 @@
+#include "facets.h"
+
+#define FACET_VALUE_UNSET "-"
+#define HISTOGRAM_COLUMNS 60
+
+static void facets_row_free(FACETS *facets __maybe_unused, FACET_ROW *row);
+
+// ----------------------------------------------------------------------------
+
+time_t calculate_bar_width(time_t before, time_t after) {
+ // Array of valid durations in seconds
+ static time_t valid_durations[] = {
+ 1,
+ 15,
+ 30,
+ 1 * 60, 2 * 60, 3 * 60, 5 * 60, 10 * 60, 15 * 60, 30 * 60, // minutes
+ 1 * 3600, 2 * 3600, 6 * 3600, 8 * 3600, 12 * 3600, // hours
+ 1 * 86400, 2 * 86400, 3 * 86400, 5 * 86400, 7 * 86400, 14 * 86400, // days
+ 1 * (30*86400) // months
+ };
+ static int array_size = sizeof(valid_durations) / sizeof(valid_durations[0]);
+
+ time_t duration = before - after;
+ time_t bar_width = 1;
+
+ for (int i = array_size - 1; i >= 0; --i) {
+ if (duration / valid_durations[i] >= HISTOGRAM_COLUMNS) {
+ bar_width = valid_durations[i];
+ break;
+ }
+ }
+
+ return bar_width;
+}
+
+// ----------------------------------------------------------------------------
+
+static inline void uint32_to_char(uint32_t num, char *out) {
+ static char id_encoding_characters[64 + 1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.abcdefghijklmnopqrstuvwxyz_0123456789";
+
+ int i;
+ for(i = 5; i >= 0; --i) {
+ out[i] = id_encoding_characters[num & 63];
+ num >>= 6;
+ }
+ out[6] = '\0';
+}
+
+inline void facets_string_hash(const char *src, char *out) {
+ uint32_t hash1 = fnv1a_hash32(src);
+ uint32_t hash2 = djb2_hash32(src);
+ uint32_t hash3 = larson_hash32(src);
+
+ uint32_to_char(hash1, out);
+ uint32_to_char(hash2, &out[6]);
+ uint32_to_char(hash3, &out[12]);
+
+ out[18] = '\0';
+}
+
+// ----------------------------------------------------------------------------
+
+typedef struct facet_value {
+ const char *name;
+
+ bool selected;
+
+ uint32_t rows_matching_facet_value;
+ uint32_t final_facet_value_counter;
+} FACET_VALUE;
+
+struct facet_key {
+ const char *name;
+
+ DICTIONARY *values;
+
+ FACET_KEY_OPTIONS options;
+
+ bool default_selected_for_values; // the default "selected" for all values in the dictionary
+
+ // members about the current row
+ uint32_t key_found_in_row;
+ uint32_t key_values_selected_in_row;
+
+ struct {
+ char hash[FACET_STRING_HASH_SIZE];
+ bool updated;
+ BUFFER *b;
+ } current_value;
+
+ uint32_t order;
+
+ struct {
+ facet_dynamic_row_t cb;
+ void *data;
+ } dynamic;
+
+ struct {
+ facets_key_transformer_t cb;
+ void *data;
+ } transform;
+
+ struct facet_key *prev, *next;
+};
+
+struct facets {
+ SIMPLE_PATTERN *visible_keys;
+ SIMPLE_PATTERN *excluded_keys;
+ SIMPLE_PATTERN *included_keys;
+
+ FACETS_OPTIONS options;
+ usec_t anchor;
+
+ SIMPLE_PATTERN *query; // the full text search pattern
+ size_t keys_filtered_by_query; // the number of fields we do full text search (constant)
+ size_t keys_matched_by_query; // the number of fields matched the full text search (per row)
+
+ DICTIONARY *accepted_params;
+
+ FACET_KEY *keys_ll;
+ DICTIONARY *keys;
+ FACET_ROW *base; // double linked list of the selected facets rows
+
+ uint32_t items_to_return;
+ uint32_t max_items_to_return;
+ uint32_t order;
+
+ struct {
+ FACET_ROW *last_added;
+
+ size_t evaluated;
+ size_t matched;
+
+ size_t first;
+ size_t forwards;
+ size_t backwards;
+ size_t skips_before;
+ size_t skips_after;
+ size_t prepends;
+ size_t appends;
+ size_t shifts;
+ } operations;
+};
+
+// ----------------------------------------------------------------------------
+
+static inline void facet_value_is_used(FACET_KEY *k, FACET_VALUE *v) {
+ if(!k->key_found_in_row)
+ v->rows_matching_facet_value++;
+
+ k->key_found_in_row++;
+
+ if(v->selected)
+ k->key_values_selected_in_row++;
+}
+
+static inline bool facets_key_is_facet(FACETS *facets, FACET_KEY *k) {
+ bool included = true, excluded = false;
+
+ if(k->options & (FACET_KEY_OPTION_FACET | FACET_KEY_OPTION_NO_FACET)) {
+ if(k->options & FACET_KEY_OPTION_FACET) {
+ included = true;
+ excluded = false;
+ }
+ else if(k->options & FACET_KEY_OPTION_NO_FACET) {
+ included = false;
+ excluded = true;
+ }
+ }
+ else {
+ if (facets->included_keys) {
+ if (!simple_pattern_matches(facets->included_keys, k->name))
+ included = false;
+ }
+
+ if (facets->excluded_keys) {
+ if (simple_pattern_matches(facets->excluded_keys, k->name))
+ excluded = true;
+ }
+ }
+
+ if(included && !excluded) {
+ k->options |= FACET_KEY_OPTION_FACET;
+ k->options &= ~FACET_KEY_OPTION_NO_FACET;
+ return true;
+ }
+
+ k->options |= FACET_KEY_OPTION_NO_FACET;
+ k->options &= ~FACET_KEY_OPTION_FACET;
+ return false;
+}
+
+// ----------------------------------------------------------------------------
+// FACET_VALUE dictionary hooks
+
+static void facet_value_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data) {
+ FACET_VALUE *v = value;
+ FACET_KEY *k = data;
+
+ if(v->name) {
+ // an actual value, not a filter
+ v->name = strdupz(v->name);
+ facet_value_is_used(k, v);
+ }
+
+ if(!v->selected)
+ v->selected = k->default_selected_for_values;
+}
+
+static bool facet_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data) {
+ FACET_VALUE *v = old_value;
+ FACET_VALUE *nv = new_value;
+ FACET_KEY *k = data;
+
+ if(!v->name && nv->name)
+ // an actual value, not a filter
+ v->name = strdupz(nv->name);
+
+ if(v->name)
+ facet_value_is_used(k, v);
+
+ return false;
+}
+
+static void facet_value_delete_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
+ FACET_VALUE *v = value;
+ freez((char *)v->name);
+}
+
+// ----------------------------------------------------------------------------
+// FACET_KEY dictionary hooks
+
+static inline void facet_key_late_init(FACETS *facets, FACET_KEY *k) {
+ if(k->values)
+ return;
+
+ if(facets_key_is_facet(facets, k)) {
+ k->values = dictionary_create_advanced(
+ DICT_OPTION_SINGLE_THREADED | DICT_OPTION_DONT_OVERWRITE_VALUE | DICT_OPTION_FIXED_SIZE,
+ NULL, sizeof(FACET_VALUE));
+ dictionary_register_insert_callback(k->values, facet_value_insert_callback, k);
+ dictionary_register_conflict_callback(k->values, facet_value_conflict_callback, k);
+ dictionary_register_delete_callback(k->values, facet_value_delete_callback, k);
+ }
+}
+
+static void facet_key_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data) {
+ FACET_KEY *k = value;
+ FACETS *facets = data;
+
+ if(!(k->options & FACET_KEY_OPTION_REORDER))
+ k->order = facets->order++;
+
+ if((k->options & FACET_KEY_OPTION_FTS) || (facets->options & FACETS_OPTION_ALL_KEYS_FTS))
+ facets->keys_filtered_by_query++;
+
+ if(k->name) {
+ // an actual value, not a filter
+ k->name = strdupz(k->name);
+ facet_key_late_init(facets, k);
+ }
+
+ k->current_value.b = buffer_create(0, NULL);
+
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(facets->keys_ll, k, prev, next);
+}
+
+static bool facet_key_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data) {
+ FACET_KEY *k = old_value;
+ FACET_KEY *nk = new_value;
+ FACETS *facets = data;
+
+ if(!k->name && nk->name) {
+ // an actual value, not a filter
+ k->name = strdupz(nk->name);
+ facet_key_late_init(facets, k);
+ }
+
+ if(k->options & FACET_KEY_OPTION_REORDER) {
+ k->order = facets->order++;
+ k->options &= ~FACET_KEY_OPTION_REORDER;
+ }
+
+ return false;
+}
+
+static void facet_key_delete_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data __maybe_unused) {
+ FACET_KEY *k = value;
+ FACETS *facets = data;
+
+ DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(facets->keys_ll, k, prev, next);
+
+ dictionary_destroy(k->values);
+ buffer_free(k->current_value.b);
+ freez((char *)k->name);
+}
+
+// ----------------------------------------------------------------------------
+
+FACETS *facets_create(uint32_t items_to_return, usec_t anchor, FACETS_OPTIONS options, const char *visible_keys, const char *facet_keys, const char *non_facet_keys) {
+ FACETS *facets = callocz(1, sizeof(FACETS));
+ facets->options = options;
+ facets->keys = dictionary_create_advanced(DICT_OPTION_SINGLE_THREADED|DICT_OPTION_DONT_OVERWRITE_VALUE|DICT_OPTION_FIXED_SIZE, NULL, sizeof(FACET_KEY));
+ dictionary_register_insert_callback(facets->keys, facet_key_insert_callback, facets);
+ dictionary_register_conflict_callback(facets->keys, facet_key_conflict_callback, facets);
+ dictionary_register_delete_callback(facets->keys, facet_key_delete_callback, facets);
+
+ if(facet_keys && *facet_keys)
+ facets->included_keys = simple_pattern_create(facet_keys, "|", SIMPLE_PATTERN_EXACT, true);
+
+ if(non_facet_keys && *non_facet_keys)
+ facets->excluded_keys = simple_pattern_create(non_facet_keys, "|", SIMPLE_PATTERN_EXACT, true);
+
+ if(visible_keys && *visible_keys)
+ facets->visible_keys = simple_pattern_create(visible_keys, "|", SIMPLE_PATTERN_EXACT, true);
+
+ facets->max_items_to_return = items_to_return;
+ facets->anchor = anchor;
+ facets->order = 1;
+
+ return facets;
+}
+
+void facets_destroy(FACETS *facets) {
+ dictionary_destroy(facets->accepted_params);
+ dictionary_destroy(facets->keys);
+ simple_pattern_free(facets->visible_keys);
+ simple_pattern_free(facets->included_keys);
+ simple_pattern_free(facets->excluded_keys);
+
+ while(facets->base) {
+ FACET_ROW *r = facets->base;
+ DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(facets->base, r, prev, next);
+
+ facets_row_free(facets, r);
+ }
+
+ freez(facets);
+}
+
+void facets_accepted_param(FACETS *facets, const char *param) {
+ if(!facets->accepted_params)
+ facets->accepted_params = dictionary_create(DICT_OPTION_SINGLE_THREADED|DICT_OPTION_DONT_OVERWRITE_VALUE);
+
+ dictionary_set(facets->accepted_params, param, NULL, 0);
+}
+
+inline FACET_KEY *facets_register_key(FACETS *facets, const char *key, FACET_KEY_OPTIONS options) {
+ FACET_KEY tk = {
+ .name = key,
+ .options = options,
+ .default_selected_for_values = true,
+ };
+ char hash[FACET_STRING_HASH_SIZE];
+ facets_string_hash(tk.name, hash);
+ return dictionary_set(facets->keys, hash, &tk, sizeof(tk));
+}
+
+inline FACET_KEY *facets_register_key_transformation(FACETS *facets, const char *key, FACET_KEY_OPTIONS options, facets_key_transformer_t cb, void *data) {
+ FACET_KEY *k = facets_register_key(facets, key, options);
+ k->transform.cb = cb;
+ k->transform.data = data;
+ return k;
+}
+
+inline FACET_KEY *facets_register_dynamic_key(FACETS *facets, const char *key, FACET_KEY_OPTIONS options, facet_dynamic_row_t cb, void *data) {
+ FACET_KEY *k = facets_register_key(facets, key, options);
+ k->dynamic.cb = cb;
+ k->dynamic.data = data;
+ return k;
+}
+
+void facets_set_query(FACETS *facets, const char *query) {
+ if(!query)
+ return;
+
+ facets->query = simple_pattern_create(query, " \t", SIMPLE_PATTERN_SUBSTRING, false);
+}
+
+void facets_set_items(FACETS *facets, uint32_t items) {
+ facets->max_items_to_return = items;
+}
+
+void facets_set_anchor(FACETS *facets, usec_t anchor) {
+ facets->anchor = anchor;
+}
+
+void facets_register_facet_filter(FACETS *facets, const char *key_id, char *value_ids, FACET_KEY_OPTIONS options) {
+ FACET_KEY tk = {
+ .options = options,
+ };
+ FACET_KEY *k = dictionary_set(facets->keys, key_id, &tk, sizeof(tk));
+
+ k->default_selected_for_values = false;
+ k->options |= FACET_KEY_OPTION_FACET;
+ k->options &= ~FACET_KEY_OPTION_NO_FACET;
+ facet_key_late_init(facets, k);
+
+ FACET_VALUE tv = {
+ .selected = true,
+ };
+ dictionary_set(k->values, value_ids, &tv, sizeof(tv));
+}
+
+// ----------------------------------------------------------------------------
+
+static inline void facets_check_value(FACETS *facets __maybe_unused, FACET_KEY *k) {
+ if(!k->current_value.updated)
+ buffer_flush(k->current_value.b);
+
+ if(k->transform.cb)
+ k->transform.cb(facets, k->current_value.b, k->transform.data);
+
+ if(!k->current_value.updated) {
+ buffer_strcat(k->current_value.b, FACET_VALUE_UNSET);
+ k->current_value.updated = true;
+ }
+
+// bool found = false;
+// if(strstr(buffer_tostring(k->current_value), "fprintd") != NULL)
+// found = true;
+
+ if(facets->query && ((k->options & FACET_KEY_OPTION_FTS) || facets->options & FACETS_OPTION_ALL_KEYS_FTS)) {
+ if(simple_pattern_matches(facets->query, buffer_tostring(k->current_value.b)))
+ facets->keys_matched_by_query++;
+ }
+
+ if(k->values) {
+ FACET_VALUE tk = {
+ .name = buffer_tostring(k->current_value.b),
+ };
+ facets_string_hash(tk.name, k->current_value.hash);
+ dictionary_set(k->values, k->current_value.hash, &tk, sizeof(tk));
+ }
+ else {
+ k->key_found_in_row++;
+ k->key_values_selected_in_row++;
+ }
+}
+
+void facets_add_key_value(FACETS *facets, const char *key, const char *value) {
+ FACET_KEY *k = facets_register_key(facets, key, 0);
+ buffer_flush(k->current_value.b);
+ buffer_strcat(k->current_value.b, value);
+ k->current_value.updated = true;
+
+ facets_check_value(facets, k);
+}
+
+void facets_add_key_value_length(FACETS *facets, const char *key, const char *value, size_t value_len) {
+ FACET_KEY *k = facets_register_key(facets, key, 0);
+ buffer_flush(k->current_value.b);
+ buffer_strncat(k->current_value.b, value, value_len);
+ k->current_value.updated = true;
+
+ facets_check_value(facets, k);
+}
+
+// ----------------------------------------------------------------------------
+// FACET_ROW dictionary hooks
+
+static void facet_row_key_value_insert_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data) {
+ FACET_ROW_KEY_VALUE *rkv = value;
+ FACET_ROW *row = data; (void)row;
+
+ rkv->wb = buffer_create(0, NULL);
+ buffer_strcat(rkv->wb, rkv->tmp && *rkv->tmp ? rkv->tmp : FACET_VALUE_UNSET);
+}
+
+static bool facet_row_key_value_conflict_callback(const DICTIONARY_ITEM *item __maybe_unused, void *old_value, void *new_value, void *data) {
+ FACET_ROW_KEY_VALUE *rkv = old_value;
+ FACET_ROW_KEY_VALUE *n_rkv = new_value;
+ FACET_ROW *row = data; (void)row;
+
+ buffer_flush(rkv->wb);
+ buffer_strcat(rkv->wb, n_rkv->tmp && *n_rkv->tmp ? n_rkv->tmp : FACET_VALUE_UNSET);
+
+ return false;
+}
+
+static void facet_row_key_value_delete_callback(const DICTIONARY_ITEM *item __maybe_unused, void *value, void *data) {
+ FACET_ROW_KEY_VALUE *rkv = value;
+ FACET_ROW *row = data; (void)row;
+
+ buffer_free(rkv->wb);
+}
+
+// ----------------------------------------------------------------------------
+// FACET_ROW management
+
+static void facets_row_free(FACETS *facets __maybe_unused, FACET_ROW *row) {
+ dictionary_destroy(row->dict);
+ freez(row);
+}
+
+static FACET_ROW *facets_row_create(FACETS *facets, usec_t usec, FACET_ROW *into) {
+ FACET_ROW *row;
+
+ if(into)
+ row = into;
+ else {
+ row = callocz(1, sizeof(FACET_ROW));
+ row->dict = dictionary_create_advanced(DICT_OPTION_SINGLE_THREADED|DICT_OPTION_DONT_OVERWRITE_VALUE|DICT_OPTION_FIXED_SIZE, NULL, sizeof(FACET_ROW_KEY_VALUE));
+ dictionary_register_insert_callback(row->dict, facet_row_key_value_insert_callback, row);
+ dictionary_register_conflict_callback(row->dict, facet_row_key_value_conflict_callback, row);
+ dictionary_register_delete_callback(row->dict, facet_row_key_value_delete_callback, row);
+ }
+
+ row->usec = usec;
+
+ FACET_KEY *k;
+ dfe_start_read(facets->keys, k) {
+ FACET_ROW_KEY_VALUE t = {
+ .tmp = (k->current_value.updated && buffer_strlen(k->current_value.b)) ?
+ buffer_tostring(k->current_value.b) : FACET_VALUE_UNSET,
+ .wb = NULL,
+ };
+ dictionary_set(row->dict, k->name, &t, sizeof(t));
+ }
+ dfe_done(k);
+
+ return row;
+}
+
+// ----------------------------------------------------------------------------
+
+static void facets_row_keep(FACETS *facets, usec_t usec) {
+ facets->operations.matched++;
+
+ if(usec < facets->anchor) {
+ facets->operations.skips_before++;
+ return;
+ }
+
+ if(unlikely(!facets->base)) {
+ facets->operations.last_added = facets_row_create(facets, usec, NULL);
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(facets->base, facets->operations.last_added, prev, next);
+ facets->items_to_return++;
+ facets->operations.first++;
+ return;
+ }
+
+ if(likely(usec > facets->base->prev->usec))
+ facets->operations.last_added = facets->base->prev;
+
+ FACET_ROW *last = facets->operations.last_added;
+ while(last->prev != facets->base->prev && usec > last->prev->usec) {
+ last = last->prev;
+ facets->operations.backwards++;
+ }
+
+ while(last->next && usec < last->next->usec) {
+ last = last->next;
+ facets->operations.forwards++;
+ }
+
+ if(facets->items_to_return >= facets->max_items_to_return) {
+ if(last == facets->base->prev && usec < last->usec) {
+ facets->operations.skips_after++;
+ return;
+ }
+ }
+
+ facets->items_to_return++;
+
+ if(usec > last->usec) {
+ if(facets->items_to_return > facets->max_items_to_return) {
+ facets->items_to_return--;
+ facets->operations.shifts++;
+ facets->operations.last_added = facets->base->prev;
+ DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(facets->base, facets->operations.last_added, prev, next);
+ facets->operations.last_added = facets_row_create(facets, usec, facets->operations.last_added);
+ }
+ DOUBLE_LINKED_LIST_PREPEND_ITEM_UNSAFE(facets->base, facets->operations.last_added, prev, next);
+ facets->operations.prepends++;
+ }
+ else {
+ facets->operations.last_added = facets_row_create(facets, usec, NULL);
+ DOUBLE_LINKED_LIST_APPEND_ITEM_UNSAFE(facets->base, facets->operations.last_added, prev, next);
+ facets->operations.appends++;
+ }
+
+ while(facets->items_to_return > facets->max_items_to_return) {
+ // we have to remove something
+
+ FACET_ROW *tmp = facets->base->prev;
+ DOUBLE_LINKED_LIST_REMOVE_ITEM_UNSAFE(facets->base, tmp, prev, next);
+ facets->items_to_return--;
+
+ if(unlikely(facets->operations.last_added == tmp))
+ facets->operations.last_added = facets->base->prev;
+
+ facets_row_free(facets, tmp);
+ facets->operations.shifts++;
+ }
+}
+
+void facets_rows_begin(FACETS *facets) {
+ FACET_KEY *k;
+ // dfe_start_read(facets->keys, k) {
+ for(k = facets->keys_ll ; k ; k = k->next) {
+ k->key_found_in_row = 0;
+ k->key_values_selected_in_row = 0;
+ k->current_value.updated = false;
+ k->current_value.hash[0] = '\0';
+ }
+ // dfe_done(k);
+
+ facets->keys_matched_by_query = 0;
+}
+
+void facets_row_finished(FACETS *facets, usec_t usec) {
+ if(facets->query && facets->keys_filtered_by_query && !facets->keys_matched_by_query)
+ goto cleanup;
+
+ facets->operations.evaluated++;
+
+ uint32_t total_keys = 0;
+ uint32_t selected_by = 0;
+
+ FACET_KEY *k;
+ // dfe_start_read(facets->keys, k) {
+ for(k = facets->keys_ll ; k ; k = k->next) {
+ if(!k->key_found_in_row) {
+ // put the FACET_VALUE_UNSET value into it
+ facets_check_value(facets, k);
+ }
+
+ internal_fatal(!k->key_found_in_row, "all keys should be found in the row at this point");
+ internal_fatal(k->key_found_in_row != 1, "all keys should be matched exactly once at this point");
+ internal_fatal(k->key_values_selected_in_row > 1, "key values are selected in row more than once");
+
+ k->key_found_in_row = 1;
+
+ total_keys += k->key_found_in_row;
+ selected_by += (k->key_values_selected_in_row) ? 1 : 0;
+ }
+ // dfe_done(k);
+
+ if(selected_by >= total_keys - 1) {
+ uint32_t found = 0;
+
+ // dfe_start_read(facets->keys, k){
+ for(k = facets->keys_ll ; k ; k = k->next) {
+ uint32_t counted_by = selected_by;
+
+ if (counted_by != total_keys && !k->key_values_selected_in_row)
+ counted_by++;
+
+ if(counted_by == total_keys) {
+ if(k->values) {
+ if(!k->current_value.hash[0])
+ facets_string_hash(buffer_tostring(k->current_value.b), k->current_value.hash);
+
+ FACET_VALUE *v = dictionary_get(k->values, k->current_value.hash);
+ v->final_facet_value_counter++;
+ }
+
+ found++;
+ }
+ }
+ // dfe_done(k);
+
+ internal_fatal(!found, "We should find at least one facet to count this row");
+ (void)found;
+ }
+
+ if(selected_by == total_keys)
+ facets_row_keep(facets, usec);
+
+cleanup:
+ facets_rows_begin(facets);
+}
+
+// ----------------------------------------------------------------------------
+// output
+
+void facets_report(FACETS *facets, BUFFER *wb) {
+ buffer_json_member_add_boolean(wb, "show_ids", false);
+ buffer_json_member_add_boolean(wb, "has_history", true);
+
+ buffer_json_member_add_object(wb, "pagination");
+ buffer_json_member_add_boolean(wb, "enabled", true);
+ buffer_json_member_add_string(wb, "key", "anchor");
+ buffer_json_member_add_string(wb, "column", "timestamp");
+ buffer_json_object_close(wb);
+
+ buffer_json_member_add_array(wb, "accepted_params");
+ {
+ if(facets->accepted_params) {
+ void *t;
+ dfe_start_read(facets->accepted_params, t) {
+ buffer_json_add_array_item_string(wb, t_dfe.name);
+ }
+ dfe_done(t);
+ }
+
+ FACET_KEY *k;
+ dfe_start_read(facets->keys, k) {
+ if(!k->values)
+ continue;
+
+ buffer_json_add_array_item_string(wb, k_dfe.name);
+ }
+ dfe_done(k);
+ }
+ buffer_json_array_close(wb); // accepted_params
+
+ buffer_json_member_add_array(wb, "facets");
+ {
+ FACET_KEY *k;
+ dfe_start_read(facets->keys, k) {
+ if(!k->values)
+ continue;
+
+ buffer_json_add_array_item_object(wb); // key
+ {
+ buffer_json_member_add_string(wb, "id", k_dfe.name);
+ buffer_json_member_add_string(wb, "name", k->name);
+
+ if(!k->order)
+ k->order = facets->order++;
+
+ buffer_json_member_add_uint64(wb, "order", k->order);
+ buffer_json_member_add_array(wb, "options");
+ {
+ FACET_VALUE *v;
+ dfe_start_read(k->values, v) {
+ buffer_json_add_array_item_object(wb);
+ {
+ buffer_json_member_add_string(wb, "id", v_dfe.name);
+ buffer_json_member_add_string(wb, "name", v->name);
+ buffer_json_member_add_uint64(wb, "count", v->final_facet_value_counter);
+ }
+ buffer_json_object_close(wb);
+ }
+ dfe_done(v);
+ }
+ buffer_json_array_close(wb); // options
+ }
+ buffer_json_object_close(wb); // key
+ }
+ dfe_done(k);
+ }
+ buffer_json_array_close(wb); // facets
+
+ buffer_json_member_add_object(wb, "columns");
+ {
+ size_t field_id = 0;
+ buffer_rrdf_table_add_field(
+ wb, field_id++,
+ "timestamp", "Timestamp",
+ RRDF_FIELD_TYPE_TIMESTAMP,
+ RRDF_FIELD_VISUAL_VALUE,
+ RRDF_FIELD_TRANSFORM_DATETIME_USEC, 0, NULL, NAN,
+ RRDF_FIELD_SORT_DESCENDING,
+ NULL,
+ RRDF_FIELD_SUMMARY_COUNT,
+ RRDF_FIELD_FILTER_RANGE,
+ RRDF_FIELD_OPTS_VISIBLE | RRDF_FIELD_OPTS_UNIQUE_KEY,
+ NULL);
+
+ FACET_KEY *k;
+ dfe_start_read(facets->keys, k) {
+ RRDF_FIELD_OPTIONS options = RRDF_FIELD_OPTS_NONE;
+ bool visible = k->options & (FACET_KEY_OPTION_VISIBLE|FACET_KEY_OPTION_STICKY);
+
+ if((facets->options & FACETS_OPTION_ALL_FACETS_VISIBLE && k->values))
+ visible = true;
+
+ if(!visible)
+ visible = simple_pattern_matches(facets->visible_keys, k->name);
+
+ if(visible)
+ options |= RRDF_FIELD_OPTS_VISIBLE;
+
+ if(k->options & FACET_KEY_OPTION_MAIN_TEXT)
+ options |= RRDF_FIELD_OPTS_FULL_WIDTH | RRDF_FIELD_OPTS_WRAP;
+
+ buffer_rrdf_table_add_field(
+ wb, field_id++,
+ k_dfe.name, k->name ? k->name : k_dfe.name,
+ RRDF_FIELD_TYPE_STRING,
+ RRDF_FIELD_VISUAL_VALUE,
+ RRDF_FIELD_TRANSFORM_NONE, 0, NULL, NAN,
+ RRDF_FIELD_SORT_ASCENDING,
+ NULL,
+ RRDF_FIELD_SUMMARY_COUNT,
+ k->values ? RRDF_FIELD_FILTER_FACET : RRDF_FIELD_FILTER_NONE,
+ options,
+ FACET_VALUE_UNSET);
+ }
+ dfe_done(k);
+ }
+ buffer_json_object_close(wb); // columns
+
+ buffer_json_member_add_array(wb, "data");
+ {
+ for(FACET_ROW *row = facets->base ; row ;row = row->next) {
+ buffer_json_add_array_item_array(wb); // each row
+ buffer_json_add_array_item_uint64(wb, row->usec);
+
+ FACET_KEY *k;
+ dfe_start_read(facets->keys, k)
+ {
+ FACET_ROW_KEY_VALUE *rkv = dictionary_get(row->dict, k->name);
+
+ if(unlikely(k->dynamic.cb)) {
+ if(unlikely(!rkv))
+ rkv = dictionary_set(row->dict, k->name, NULL, sizeof(*rkv));
+
+ k->dynamic.cb(facets, wb, rkv, row, k->dynamic.data);
+ }
+ else
+ buffer_json_add_array_item_string(wb, rkv ? buffer_tostring(rkv->wb) : FACET_VALUE_UNSET);
+ }
+ dfe_done(k);
+ buffer_json_array_close(wb); // each row
+ }
+ }
+ buffer_json_array_close(wb); // data
+
+ buffer_json_member_add_string(wb, "default_sort_column", "timestamp");
+ buffer_json_member_add_array(wb, "default_charts");
+ buffer_json_array_close(wb);
+
+ buffer_json_member_add_object(wb, "items");
+ {
+ buffer_json_member_add_uint64(wb, "evaluated", facets->operations.evaluated);
+ buffer_json_member_add_uint64(wb, "matched", facets->operations.matched);
+ buffer_json_member_add_uint64(wb, "returned", facets->items_to_return);
+ buffer_json_member_add_uint64(wb, "max_to_return", facets->max_items_to_return);
+ buffer_json_member_add_uint64(wb, "before", facets->operations.skips_before);
+ buffer_json_member_add_uint64(wb, "after", facets->operations.skips_after + facets->operations.shifts);
+ }
+ buffer_json_object_close(wb); // items
+
+ buffer_json_member_add_object(wb, "stats");
+ {
+ buffer_json_member_add_uint64(wb, "first", facets->operations.first);
+ buffer_json_member_add_uint64(wb, "forwards", facets->operations.forwards);
+ buffer_json_member_add_uint64(wb, "backwards", facets->operations.backwards);
+ buffer_json_member_add_uint64(wb, "skips_before", facets->operations.skips_before);
+ buffer_json_member_add_uint64(wb, "skips_after", facets->operations.skips_after);
+ buffer_json_member_add_uint64(wb, "prepends", facets->operations.prepends);
+ buffer_json_member_add_uint64(wb, "appends", facets->operations.appends);
+ buffer_json_member_add_uint64(wb, "shifts", facets->operations.shifts);
+ }
+ buffer_json_object_close(wb); // items
+
+}
diff --git a/libnetdata/facets/facets.h b/libnetdata/facets/facets.h
new file mode 100644
index 000000000..c0f7f80c8
--- /dev/null
+++ b/libnetdata/facets/facets.h
@@ -0,0 +1,62 @@
+#ifndef FACETS_H
+#define FACETS_H 1
+
+#include "../libnetdata.h"
+
+typedef enum __attribute__((packed)) {
+ FACET_KEY_OPTION_FACET = (1 << 0), // filterable values
+ FACET_KEY_OPTION_NO_FACET = (1 << 1), // non-filterable value
+ FACET_KEY_OPTION_STICKY = (1 << 2), // should be sticky in the table
+ FACET_KEY_OPTION_VISIBLE = (1 << 3), // should be in the default table
+ FACET_KEY_OPTION_FTS = (1 << 4), // the key is filterable by full text search (FTS)
+ FACET_KEY_OPTION_MAIN_TEXT = (1 << 5), // full width and wrap
+ FACET_KEY_OPTION_REORDER = (1 << 6), // give the key a new order id on first encounter
+} FACET_KEY_OPTIONS;
+
+typedef struct facet_row_key_value {
+ const char *tmp;
+ BUFFER *wb;
+} FACET_ROW_KEY_VALUE;
+
+typedef struct facet_row {
+ usec_t usec;
+ DICTIONARY *dict;
+ struct facet_row *prev, *next;
+} FACET_ROW;
+
+typedef struct facets FACETS;
+typedef struct facet_key FACET_KEY;
+
+#define FACET_STRING_HASH_SIZE 19
+void facets_string_hash(const char *src, char *out);
+
+typedef void (*facets_key_transformer_t)(FACETS *facets __maybe_unused, BUFFER *wb, void *data);
+typedef void (*facet_dynamic_row_t)(FACETS *facets, BUFFER *json_array, FACET_ROW_KEY_VALUE *rkv, FACET_ROW *row, void *data);
+FACET_KEY *facets_register_dynamic_key(FACETS *facets, const char *key, FACET_KEY_OPTIONS options, facet_dynamic_row_t cb, void *data);
+FACET_KEY *facets_register_key_transformation(FACETS *facets, const char *key, FACET_KEY_OPTIONS options, facets_key_transformer_t cb, void *data);
+
+typedef enum __attribute__((packed)) {
+ FACETS_OPTION_ALL_FACETS_VISIBLE = (1 << 0), // all facets, should be visible by default in the table
+ FACETS_OPTION_ALL_KEYS_FTS = (1 << 1), // all keys are searchable by full text search
+} FACETS_OPTIONS;
+
+FACETS *facets_create(uint32_t items_to_return, usec_t anchor, FACETS_OPTIONS options, const char *visible_keys, const char *facet_keys, const char *non_facet_keys);
+void facets_destroy(FACETS *facets);
+
+void facets_accepted_param(FACETS *facets, const char *param);
+
+void facets_rows_begin(FACETS *facets);
+void facets_row_finished(FACETS *facets, usec_t usec);
+
+FACET_KEY *facets_register_key(FACETS *facets, const char *param, FACET_KEY_OPTIONS options);
+void facets_set_query(FACETS *facets, const char *query);
+void facets_set_items(FACETS *facets, uint32_t items);
+void facets_set_anchor(FACETS *facets, usec_t anchor);
+void facets_register_facet_filter(FACETS *facets, const char *key_id, char *value_ids, FACET_KEY_OPTIONS options);
+
+void facets_add_key_value(FACETS *facets, const char *key, const char *value);
+void facets_add_key_value_length(FACETS *facets, const char *key, const char *value, size_t value_len);
+
+void facets_report(FACETS *facets, BUFFER *wb);
+
+#endif
diff --git a/libnetdata/http/http_defs.h b/libnetdata/http/http_defs.h
index 906e3bdfb..ffd1c344b 100644
--- a/libnetdata/http/http_defs.h
+++ b/libnetdata/http/http_defs.h
@@ -17,15 +17,23 @@
#define HTTP_RESP_UNAUTHORIZED 401
#define HTTP_RESP_FORBIDDEN 403
#define HTTP_RESP_NOT_FOUND 404
+#define HTTP_RESP_METHOD_NOT_ALLOWED 405
+#define HTTP_RESP_METHOD_NOT_ALLOWED_STR "Method Not Allowed"
#define HTTP_RESP_CONFLICT 409
#define HTTP_RESP_PRECOND_FAIL 412
#define HTTP_RESP_CONTENT_TOO_LONG 413
// HTTP_CODES 5XX Server Errors
#define HTTP_RESP_INTERNAL_SERVER_ERROR 500
+#define HTTP_RESP_INTERNAL_SERVER_ERROR_STR "Internal Server Error"
#define HTTP_RESP_BACKEND_FETCH_FAILED 503 // 503 is right
#define HTTP_RESP_SERVICE_UNAVAILABLE 503 // 503 is right
#define HTTP_RESP_GATEWAY_TIMEOUT 504
#define HTTP_RESP_BACKEND_RESPONSE_INVALID 591
+#define HTTP_METHOD_GET (1)
+#define HTTP_METHOD_POST (2)
+#define HTTP_METHOD_PUT (3)
+#define HTTP_METHOD_DELETE (4)
+
#endif /* NETDATA_HTTP_DEFS_H */
diff --git a/libnetdata/inlined.h b/libnetdata/inlined.h
index 2697b9a03..eb55f0fe7 100644
--- a/libnetdata/inlined.h
+++ b/libnetdata/inlined.h
@@ -209,7 +209,7 @@ static inline uint64_t str2uint64_hex(const char *src, char **endptr) {
const unsigned char *s = (const unsigned char *)src;
unsigned char c;
- while ((c = hex_value_from_ascii[*s]) != 255) {
+ while ((c = hex_value_from_ascii[toupper(*s)]) != 255) {
num = (num << 4) | c;
s++;
}
@@ -510,6 +510,27 @@ static inline int read_single_signed_number_file(const char *filename, long long
return 0;
}
+static inline int read_single_base64_or_hex_number_file(const char *filename, unsigned long long *result) {
+ char buffer[30 + 1];
+
+ int ret = read_file(filename, buffer, 30);
+ if(unlikely(ret)) {
+ *result = 0;
+ return ret;
+ }
+
+ buffer[30] = '\0';
+
+ if(likely(buffer[0])){
+ *result = str2ull_encoded(buffer);
+ return 0;
+ }
+ else {
+ *result = 0;
+ return -1;
+ }
+}
+
static inline int uuid_memcmp(const uuid_t *uu1, const uuid_t *uu2) {
return memcmp(uu1, uu2, sizeof(uuid_t));
}
diff --git a/libnetdata/libnetdata.c b/libnetdata/libnetdata.c
index 272ba8f17..26582ffe2 100644
--- a/libnetdata/libnetdata.c
+++ b/libnetdata/libnetdata.c
@@ -1628,7 +1628,7 @@ void recursive_config_double_dir_load(const char *user_path, const char *stock_p
// Returns the number of bytes read from the file if file_size is not NULL.
// The actual buffer has an extra byte set to zero (not included in the count).
-char *read_by_filename(char *filename, long *file_size)
+char *read_by_filename(const char *filename, long *file_size)
{
FILE *f = fopen(filename, "r");
if (!f)
@@ -1966,3 +1966,135 @@ int hash256_string(const unsigned char *string, size_t size, char *hash) {
EVP_MD_CTX_destroy(ctx);
return 1;
}
+
+// Returns 1 if an absolute period was requested or 0 if it was a relative period
+bool rrdr_relative_window_to_absolute(time_t *after, time_t *before, time_t *now_ptr, bool unittest_running) {
+ time_t now = now_realtime_sec() - 1;
+
+ if(now_ptr)
+ *now_ptr = now;
+
+ int absolute_period_requested = -1;
+ long long after_requested, before_requested;
+
+ before_requested = *before;
+ after_requested = *after;
+
+ // allow relative for before (smaller than API_RELATIVE_TIME_MAX)
+ if(ABS(before_requested) <= API_RELATIVE_TIME_MAX) {
+ // if the user asked for a positive relative time,
+ // flip it to a negative
+ if(before_requested > 0)
+ before_requested = -before_requested;
+
+ before_requested = now + before_requested;
+ absolute_period_requested = 0;
+ }
+
+ // allow relative for after (smaller than API_RELATIVE_TIME_MAX)
+ if(ABS(after_requested) <= API_RELATIVE_TIME_MAX) {
+ if(after_requested > 0)
+ after_requested = -after_requested;
+
+ // if the user didn't give an after, use the number of points
+ // to give a sane default
+ if(after_requested == 0)
+ after_requested = -600;
+
+ // since the query engine now returns inclusive timestamps
+ // it is awkward to return 6 points when after=-5 is given
+ // so for relative queries we add 1 second, to give
+ // more predictable results to users.
+ after_requested = before_requested + after_requested + 1;
+ absolute_period_requested = 0;
+ }
+
+ if(absolute_period_requested == -1)
+ absolute_period_requested = 1;
+
+ // check if the parameters are flipped
+ if(after_requested > before_requested) {
+ long long t = before_requested;
+ before_requested = after_requested;
+ after_requested = t;
+ }
+
+ // if the query requests future data
+ // shift the query back to be in the present time
+ // (this may also happen because of the rules above)
+ if(before_requested > now) {
+ long long delta = before_requested - now;
+ before_requested -= delta;
+ after_requested -= delta;
+ }
+
+ time_t absolute_minimum_time = now - (10 * 365 * 86400);
+ time_t absolute_maximum_time = now + (1 * 365 * 86400);
+
+ if (after_requested < absolute_minimum_time && !unittest_running)
+ after_requested = absolute_minimum_time;
+
+ if (after_requested > absolute_maximum_time && !unittest_running)
+ after_requested = absolute_maximum_time;
+
+ if (before_requested < absolute_minimum_time && !unittest_running)
+ before_requested = absolute_minimum_time;
+
+ if (before_requested > absolute_maximum_time && !unittest_running)
+ before_requested = absolute_maximum_time;
+
+ *before = before_requested;
+ *after = after_requested;
+
+ return (absolute_period_requested != 1);
+}
+
+int netdata_base64_decode(const char *encoded, char *decoded, size_t decoded_size) {
+ static const unsigned char base64_table[256] = {
+ ['A'] = 0, ['B'] = 1, ['C'] = 2, ['D'] = 3, ['E'] = 4, ['F'] = 5, ['G'] = 6, ['H'] = 7,
+ ['I'] = 8, ['J'] = 9, ['K'] = 10, ['L'] = 11, ['M'] = 12, ['N'] = 13, ['O'] = 14, ['P'] = 15,
+ ['Q'] = 16, ['R'] = 17, ['S'] = 18, ['T'] = 19, ['U'] = 20, ['V'] = 21, ['W'] = 22, ['X'] = 23,
+ ['Y'] = 24, ['Z'] = 25, ['a'] = 26, ['b'] = 27, ['c'] = 28, ['d'] = 29, ['e'] = 30, ['f'] = 31,
+ ['g'] = 32, ['h'] = 33, ['i'] = 34, ['j'] = 35, ['k'] = 36, ['l'] = 37, ['m'] = 38, ['n'] = 39,
+ ['o'] = 40, ['p'] = 41, ['q'] = 42, ['r'] = 43, ['s'] = 44, ['t'] = 45, ['u'] = 46, ['v'] = 47,
+ ['w'] = 48, ['x'] = 49, ['y'] = 50, ['z'] = 51, ['0'] = 52, ['1'] = 53, ['2'] = 54, ['3'] = 55,
+ ['4'] = 56, ['5'] = 57, ['6'] = 58, ['7'] = 59, ['8'] = 60, ['9'] = 61, ['+'] = 62, ['/'] = 63,
+ [0 ... '+' - 1] = 255,
+ ['+' + 1 ... '/' - 1] = 255,
+ ['9' + 1 ... 'A' - 1] = 255,
+ ['Z' + 1 ... 'a' - 1] = 255,
+ ['z' + 1 ... 255] = 255
+ };
+
+ size_t count = 0;
+ unsigned int tmp = 0;
+ int i, bit;
+
+ if (decoded_size < 1)
+ return 0; // Buffer size must be at least 1 for null termination
+
+ for (i = 0, bit = 0; encoded[i]; i++) {
+ unsigned char value = base64_table[(unsigned char)encoded[i]];
+ if (value > 63)
+ return -1; // Invalid character in input
+
+ tmp = tmp << 6 | value;
+ if (++bit == 4) {
+ if (count + 3 >= decoded_size) break; // Stop decoding if buffer is full
+ decoded[count++] = (tmp >> 16) & 0xFF;
+ decoded[count++] = (tmp >> 8) & 0xFF;
+ decoded[count++] = tmp & 0xFF;
+ tmp = 0;
+ bit = 0;
+ }
+ }
+
+ if (bit > 0 && count + 1 < decoded_size) {
+ tmp <<= 6 * (4 - bit);
+ if (bit > 2 && count + 1 < decoded_size) decoded[count++] = (tmp >> 16) & 0xFF;
+ if (bit > 3 && count + 1 < decoded_size) decoded[count++] = (tmp >> 8) & 0xFF;
+ }
+
+ decoded[count] = '\0'; // Null terminate the output string
+ return count;
+}
diff --git a/libnetdata/libnetdata.h b/libnetdata/libnetdata.h
index 8b8c7206e..b8dedf515 100644
--- a/libnetdata/libnetdata.h
+++ b/libnetdata/libnetdata.h
@@ -578,7 +578,7 @@ void recursive_config_double_dir_load(
, void *data
, size_t depth
);
-char *read_by_filename(char *filename, long *file_size);
+char *read_by_filename(const char *filename, long *file_size);
char *find_and_replace(const char *src, const char *find, const char *replace, const char *where);
/* fix for alpine linux */
@@ -836,6 +836,8 @@ extern char *netdata_configured_host_prefix;
#include "yaml.h"
#include "http/http_defs.h"
#include "gorilla/gorilla.h"
+#include "facets/facets.h"
+#include "dyn_conf/dyn_conf.h"
// BEWARE: this exists in alarm-notify.sh
#define DEFAULT_CLOUD_BASE_URL "https://app.netdata.cloud"
@@ -978,6 +980,14 @@ typedef enum {
void timing_action(TIMING_ACTION action, TIMING_STEP step);
int hash256_string(const unsigned char *string, size_t size, char *hash);
+
+extern bool unittest_running;
+#define API_RELATIVE_TIME_MAX (3 * 365 * 86400)
+
+bool rrdr_relative_window_to_absolute(time_t *after, time_t *before, time_t *now_ptr, bool unittest_running);
+
+int netdata_base64_decode(const char *encoded, char *decoded, size_t decoded_size);
+
# ifdef __cplusplus
}
# endif
diff --git a/libnetdata/socket/socket.h b/libnetdata/socket/socket.h
index 8331ecbbe..c4bd47360 100644
--- a/libnetdata/socket/socket.h
+++ b/libnetdata/socket/socket.h
@@ -11,27 +11,27 @@
typedef enum web_client_acl {
WEB_CLIENT_ACL_NONE = (0),
- WEB_CLIENT_ACL_NOCHECK = (0), // Don't check anything - this should work on all channels
- WEB_CLIENT_ACL_DASHBOARD = (1 << 0),
- WEB_CLIENT_ACL_REGISTRY = (1 << 1),
- WEB_CLIENT_ACL_BADGE = (1 << 2),
- WEB_CLIENT_ACL_MGMT = (1 << 3),
- WEB_CLIENT_ACL_STREAMING = (1 << 4),
- WEB_CLIENT_ACL_NETDATACONF = (1 << 5),
- WEB_CLIENT_ACL_SSL_OPTIONAL = (1 << 6),
- WEB_CLIENT_ACL_SSL_FORCE = (1 << 7),
- WEB_CLIENT_ACL_SSL_DEFAULT = (1 << 8),
- WEB_CLIENT_ACL_ACLK = (1 << 9),
- WEB_CLIENT_ACL_WEBRTC = (1 << 10),
- WEB_CLIENT_ACL_BEARER_OPTIONAL = (1 << 11), // allow unprotected access if bearer is not enabled in netdata
- WEB_CLIENT_ACL_BEARER_REQUIRED = (1 << 12), // allow access only if a valid bearer is used
+ WEB_CLIENT_ACL_NOCHECK = (1 << 0), // Don't check anything - this should work on all channels
+ WEB_CLIENT_ACL_DASHBOARD = (1 << 1),
+ WEB_CLIENT_ACL_REGISTRY = (1 << 2),
+ WEB_CLIENT_ACL_BADGE = (1 << 3),
+ WEB_CLIENT_ACL_MGMT = (1 << 4),
+ WEB_CLIENT_ACL_STREAMING = (1 << 5),
+ WEB_CLIENT_ACL_NETDATACONF = (1 << 6),
+ WEB_CLIENT_ACL_SSL_OPTIONAL = (1 << 7),
+ WEB_CLIENT_ACL_SSL_FORCE = (1 << 8),
+ WEB_CLIENT_ACL_SSL_DEFAULT = (1 << 9),
+ WEB_CLIENT_ACL_ACLK = (1 << 10),
+ WEB_CLIENT_ACL_WEBRTC = (1 << 11),
+ WEB_CLIENT_ACL_BEARER_OPTIONAL = (1 << 12), // allow unprotected access if bearer is not enabled in netdata
+ WEB_CLIENT_ACL_BEARER_REQUIRED = (1 << 13), // allow access only if a valid bearer is used
} WEB_CLIENT_ACL;
#define WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC (WEB_CLIENT_ACL_DASHBOARD | WEB_CLIENT_ACL_ACLK | WEB_CLIENT_ACL_WEBRTC | WEB_CLIENT_ACL_BEARER_OPTIONAL)
#define WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER (WEB_CLIENT_ACL_DASHBOARD | WEB_CLIENT_ACL_ACLK | WEB_CLIENT_ACL_WEBRTC | WEB_CLIENT_ACL_BEARER_REQUIRED)
#ifdef NETDATA_DEV_MODE
-#define ACL_DEV_OPEN_ACCESS WEB_CLIENT_ACL_DASHBOARD
+#define ACL_DEV_OPEN_ACCESS WEB_CLIENT_ACL_NOCHECK
#else
#define ACL_DEV_OPEN_ACCESS 0
#endif
diff --git a/libnetdata/url/url.c b/libnetdata/url/url.c
index 7a671946a..39366cbe8 100644
--- a/libnetdata/url/url.c
+++ b/libnetdata/url/url.c
@@ -243,7 +243,7 @@ inline bool url_is_request_complete(char *begin, char *end, size_t length, char
if(likely(strncmp(begin, "GET ", 4)) == 0) {
return strstr(end - 4, "\r\n\r\n");
}
- else if(unlikely(strncmp(begin, "POST ", 5) == 0)) {
+ else if(unlikely(strncmp(begin, "POST ", 5) == 0 || strncmp(begin, "PUT ", 4) == 0)) {
char *cl = strstr(begin, "Content-Length: ");
if(!cl) return false;
cl = &cl[16];
diff --git a/libnetdata/worker_utilization/worker_utilization.h b/libnetdata/worker_utilization/worker_utilization.h
index 6745a010b..cc3f82688 100644
--- a/libnetdata/worker_utilization/worker_utilization.h
+++ b/libnetdata/worker_utilization/worker_utilization.h
@@ -7,7 +7,7 @@
#define WORKER_UTILIZATION_MAX_JOB_TYPES 50
-typedef enum {
+typedef enum __attribute__((packed)) {
WORKER_METRIC_EMPTY = 0,
WORKER_METRIC_IDLE_BUSY = 1,
WORKER_METRIC_ABSOLUTE = 2,
diff --git a/netdata-installer.sh b/netdata-installer.sh
index 6161ca4ba..e5fe2998b 100755
--- a/netdata-installer.sh
+++ b/netdata-installer.sh
@@ -1239,6 +1239,21 @@ if [ "$(id -u)" -eq 0 ]; then
fi
fi
+ if [ -f "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/systemd-journal.plugin" ]; then
+ run chown "root:${NETDATA_GROUP}" "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/systemd-journal.plugin"
+ capabilities=0
+ if ! iscontainer && command -v setcap 1> /dev/null 2>&1; then
+ run chmod 0750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/systemd-journal.plugin"
+ if run setcap cap_dac_read_search+ep "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/systemd-journal.plugin"; then
+ capabilities=1
+ fi
+ fi
+
+ if [ $capabilities -eq 0 ]; then
+ run chmod 4750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/systemd-journal.plugin"
+ fi
+ fi
+
if [ -f "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/freeipmi.plugin" ]; then
run chown "root:${NETDATA_GROUP}" "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/freeipmi.plugin"
run chmod 4750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/freeipmi.plugin"
@@ -1290,6 +1305,7 @@ if [ "$(id -u)" -eq 0 ]; then
run chown "root:${NETDATA_GROUP}" "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/local-listeners"
run chmod 4750 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/local-listeners"
fi
+
else
# non-privileged user installation
run chown "${NETDATA_USER}:${NETDATA_GROUP}" "${NETDATA_LOG_DIR}"
diff --git a/netdata.spec.in b/netdata.spec.in
index 0a9957ccf..146ee4349 100644
--- a/netdata.spec.in
+++ b/netdata.spec.in
@@ -158,13 +158,14 @@ Requires: netdata-plugin-chartsd
Requires: netdata-plugin-slabinfo
Requires: netdata-plugin-perf
%if 0%{?_have_nfacct}
-Requires: netdata-plugin-nfacct
+Requires: netdata-plugin-nfacct
%endif
%if 0%{?_have_freeipmi} && 0%{?centos_ver} != 6 && 0%{?centos_ver} != 7 && 0%{?amazon_linux} != 2
-Suggests: netdata-plugin-freeipmi
+Suggests: netdata-plugin-freeipmi
%endif
%if 0%{?centos_ver} != 6 && 0%{?centos_ver} != 7 && 0%{?amazon_linux} != 2
-Suggests: netdata-plugin-cups
+Suggests: netdata-plugin-cups
+Recommends: netdata-plugin-systemd-journal
%endif
@@ -203,6 +204,10 @@ BuildRequires: cups-devel >= 1.7
%endif
# end - cups plugin dependencies
+# systemd-journal dependencies
+BuildRequires: systemd-devel
+# end - systemd-journal dependencies
+
# Prometheus remote write dependencies
BuildRequires: snappy-devel
# end - prometheus remote write dependencies
@@ -248,13 +253,13 @@ export CFLAGS="${CFLAGS} -fPIC" && ${RPM_BUILD_DIR}/%{name}-%{version}/packaging
autoreconf -ivf
%configure \
%if 0%{!?_have_ebpf}
- --disable-ebpf
+ --disable-ebpf \
%endif
%if 0%{!?_have_freeipmi}
- --disable-plugin-freeipmi
+ --disable-plugin-freeipmi \
%endif
%if 0%{!?_have_nfacct}
- --disable-plugin-nfacct
+ --disable-plugin-nfacct \
%endif
%if 0%{?centos_ver:1}
%if %{centos_ver} < 8
@@ -306,6 +311,10 @@ install -m 4750 -p apps.plugin "${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.
# Install debugfs.plugin
install -m 0750 -p debugfs.plugin "${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.d/debugfs.plugin"
+# ###########################################################
+# Install systemd-journal.plugin
+install -m 4750 -p systemd-journal.plugin "${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.d/systemd-journal.plugin"
+
# ###########################################################
# Install perf.plugin
install -m 4750 -p perf.plugin "${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/plugins.d/perf.plugin"
@@ -600,6 +609,9 @@ rm -rf "${RPM_BUILD_ROOT}"
# perf belongs to a different sub-package
%exclude %{_libexecdir}/%{name}/plugins.d/perf.plugin
+# systemd-journal belongs to a different sub-package
+%exclude %{_libexecdir}/%{name}/plugins.d/systemd-journal.plugin
+
# CUPS belongs to a different sub package
%if 0%{?centos_ver} != 6 && 0%{?centos_ver} != 7
%exclude %{_libexecdir}/%{name}/plugins.d/cups.plugin
@@ -901,7 +913,30 @@ fi
# CAP_DAC_READ_SEARCH required for data collection.
%caps(cap_dac_read_search=ep) %attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/debugfs.plugin
+%package plugin-systemd-journal
+Summary: The systemd-journal plugin for the Netdata Agent
+Group: Applications/System
+Requires: netdata = %{version}
+Conflicts: netdata < %{version}
+
+%description plugin-systemd-journal
+ This plugin allows the Netdata Agent to present entries from the systemd
+ journal on Netdata Cloud or the local Agent Dashboard.
+
+%pre plugin-systemd-journal
+
+if ! getent group netdata > /dev/null; then
+ groupadd --system netdata
+fi
+
+%files plugin-systemd-journal
+%defattr(0750,root,netdata,0750)
+# CAP_DAC_READ_SEARCH required for data collection.
+%caps(cap_dac_read_search=ep) %attr(0750,root,netdata) %{_libexecdir}/%{name}/plugins.d/systemd-journal.plugin
+
%changelog
+* Thu Aug 03 2023 Austin Hemmelgarn 0.0.0-21
+- Added systemd-journal plugin handling
* Wed Jun 14 2023 Konstantin Shalygin 0.0.0-20
- Added eBPF build dependency (again)
* Fri Apr 07 2023 Austin Hemmelgarn 0.0.0-19
diff --git a/packaging/PLATFORM_SUPPORT.md b/packaging/PLATFORM_SUPPORT.md
index 62a6a4051..ae3edf721 100644
--- a/packaging/PLATFORM_SUPPORT.md
+++ b/packaging/PLATFORM_SUPPORT.md
@@ -58,9 +58,11 @@ to work on these platforms with minimal user effort.
| Platform | Version | Official Native Packages | Notes |
|--------------------------|----------------|----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|
-| Alpine Linux | 3.17 | No | The latest release of Alpine Linux is guaranteed to remain at **Core** tier due to usage for our Docker images |
+| Alpine Linux | 3.18 | No | The latest release of Alpine Linux is guaranteed to remain at **Core** tier due to usage for our Docker images |
| Alma Linux | 9.x | x86\_64, AArch64 | Also includes support for Rocky Linux and other ABI compatible RHEL derivatives |
| Alma Linux | 8.x | x86\_64, AArch64 | Also includes support for Rocky Linux and other ABI compatible RHEL derivatives |
+| Amazon Linux | 2023 | x86\_64, AArch64 | |
+| Amazon Linux | 2 | x86\_64, AArch64 | |
| CentOS | 7.x | x86\_64 | |
| Docker | 19.03 or newer | x86\_64, i386, ARMv7, AArch64, POWER8+ | See our [Docker documentation](https://github.com/netdata/netdata/blob/master/packaging/docker/README.md) for more info on using Netdata on Docker |
| Debian | 12.x | x86\_64, i386, ARMv7, AArch64 | |
@@ -76,7 +78,6 @@ to work on these platforms with minimal user effort.
| Red Hat Enterprise Linux | 8.x | x86\_64, AArch64 | |
| Red Hat Enterprise Linux | 7.x | x86\_64 | |
| Ubuntu | 23.04 | x86\_64, AArch64, ARMv7 | |
-| Ubuntu | 22.10 | x86\_64, ARMv7, AArch64 | |
| Ubuntu | 22.04 | x86\_64, ARMv7, AArch64 | |
| Ubuntu | 20.04 | x86\_64, ARMv7, AArch64 | |
@@ -92,10 +93,10 @@ with minimal user effort.
| Platform | Version | Official Native Packages | Notes |
|---------------|------------|--------------------------|------------------------------------------------------------------------------------------------------|
+| Alpine Linux | Edge | No | |
+| Alpine Linux | 3.17 | No | |
| Alpine Linux | 3.16 | No | |
| Alpine Linux | 3.15 | No | |
-| Amazon Linux | 2023 | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.39.0 of the Netdata Agent |
-| Amazon Linux | 2 | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.39.0 of the Netdata Agent |
| Arch Linux | Latest | No | We officially recommend the community packages available for Arch Linux |
| Manjaro Linux | Latest | No | We officially recommend the community packages available for Arch Linux |
| openSUSE | Tumbleweed | x86\_64, AArch64 | Scheduled for promotion to Core tier at some point after the release of v1.41.0 of the Netdata Agent |
@@ -110,17 +111,14 @@ platforms, but may require some extra effort from users.
| Platform | Version | Official Native Packages | Notes |
|--------------|------------|--------------------------|-----------------------------------------------------------------------------------------------------------|
-| Alpine Linux | Edge | No | |
| Clear Linux | Latest | No | |
| Debian | Sid | No | |
| Fedora | Rawhide | No | |
| FreeBSD | 13-STABLE | No | Netdata is included in the FreeBSD Ports Tree, and this is the recommended installation method on FreeBSD |
-| FreeBSD | 12-STABLE | No | Netdata is included in the FreeBSD Ports Tree, and this is the recommended installation method on FreeBSD |
| Gentoo | Latest | No | |
+| macOS | 13 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies |
| macOS | 12 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies |
| macOS | 11 | No | Currently only works for Intel-based hardware. Requires Homebrew for dependencies. |
-| macOS | 10.15 | No | Requires Homebrew for dependencies. |
-| openSUSE | Tumbleweed | No | |
## Third-party supported platforms
@@ -163,6 +161,7 @@ This is a list of platforms that we have supported in the recent past but no lon
| Fedora | 36 | EOL as of 2023-05-18 |
| Fedora | 35 | EOL as of 2022-12-13 |
| openSUSE | Leap 15.3 | EOL as of 2022-12-01 |
+| Ubuntu | 22.10 | EOL as of 2023-07-20 |
| Ubuntu | 21.10 | EOL as of 2022-07-31 |
| Ubuntu | 18.04 | EOL as of 2023-04-02 |
diff --git a/packaging/docker/run.sh b/packaging/docker/run.sh
index ed77c394a..eede14e38 100755
--- a/packaging/docker/run.sh
+++ b/packaging/docker/run.sh
@@ -46,9 +46,10 @@ if [ -n "${PGID}" ]; then
usermod -a -G "${PGID}" "${DOCKER_USR}" || echo >&2 "Could not add netdata user to group docker with ID ${PGID}"
fi
-if mountpoint -q /etc/netdata && [ -z "$(ls -A /etc/netdata)" ]; then
+if mountpoint -q /etc/netdata; then
echo "Copying stock configuration to /etc/netdata"
- cp -a /etc/netdata.stock/. /etc/netdata
+ cp -an /etc/netdata.stock/* /etc/netdata
+ cp -an /etc/netdata.stock/.[^.]* /etc/netdata
fi
if [ -w "/etc/netdata" ]; then
diff --git a/packaging/ebpf-co-re.checksums b/packaging/ebpf-co-re.checksums
index 4d4f585d7..6ee06dd1b 100644
--- a/packaging/ebpf-co-re.checksums
+++ b/packaging/ebpf-co-re.checksums
@@ -1 +1 @@
-2bcbe98689efe6ee364cb3e9161ef549198d7f181845add923c6561bc8fb74d1 netdata-ebpf-co-re-glibc-v1.2.0.tar.xz
+2abbbaf30a73e1ed365d42324a5128470568b008528c3ff8cd98d5eb86152f03 netdata-ebpf-co-re-glibc-v1.2.1.tar.xz
diff --git a/packaging/ebpf-co-re.version b/packaging/ebpf-co-re.version
index 79127d85a..6a5e98a74 100644
--- a/packaging/ebpf-co-re.version
+++ b/packaging/ebpf-co-re.version
@@ -1 +1 @@
-v1.2.0
+v1.2.1
diff --git a/packaging/ebpf.checksums b/packaging/ebpf.checksums
index 739cc2f3f..e79daee9a 100644
--- a/packaging/ebpf.checksums
+++ b/packaging/ebpf.checksums
@@ -1,3 +1,3 @@
-a7386ffca8cbe9aa24c01b0b97b2e3553c11d696752037551277f9b1f5feb100 ./netdata-kernel-collector-glibc-v1.2.0.tar.xz
-2b37ce6129dc61fd79e5519c150196099d363b4e57dafc55b210f64f9b40a3ec ./netdata-kernel-collector-musl-v1.2.0.tar.xz
-ad22f11cb545557c09955f3728ba76d9734345c0ab84927086bb0e99a9f88f80 ./netdata-kernel-collector-static-v1.2.0.tar.xz
+cb0cd6ef4bdb8a39c42b152d328d4822217c59e1d616d3003bc67bc53a058275 ./netdata-kernel-collector-glibc-v1.2.1.tar.xz
+0633ff39e8654a21ab664a289f58daca5792cfaf2ed62dcaacf7cd267eeedd40 ./netdata-kernel-collector-musl-v1.2.1.tar.xz
+6ce60c5ac8f45cc6a01b7ac9ea150728963d0aca1ee6dfd568b0f8b2ba67b88b ./netdata-kernel-collector-static-v1.2.1.tar.xz
diff --git a/packaging/ebpf.version b/packaging/ebpf.version
index 79127d85a..6a5e98a74 100644
--- a/packaging/ebpf.version
+++ b/packaging/ebpf.version
@@ -1 +1 @@
-v1.2.0
+v1.2.1
diff --git a/packaging/go.d.checksums b/packaging/go.d.checksums
index 068d46978..2ecf9853a 100644
--- a/packaging/go.d.checksums
+++ b/packaging/go.d.checksums
@@ -1,17 +1,17 @@
-aac36f9675e85e3da6f5d73f2b0ba430d3b97c447a25a81f3a41d35420e841d4 *config.tar.gz
-a3ef29cab4def627c94ddd235c23b8bd173b1ae3496dd04137c00942313afaec *go.d.plugin-v0.54.0.darwin-amd64.tar.gz
-30e4ff2a25fd59c7bc496ef9939031681a9d2528dafc55516e6564cd444bf127 *go.d.plugin-v0.54.0.darwin-arm64.tar.gz
-e35ea578ab0a09acaef9903f243f7eb3b5c1df67ded28df642bd599672d5a41b *go.d.plugin-v0.54.0.freebsd-386.tar.gz
-0eb175cd4304d74c1fdc49f86f9909ca6967b16d4a52a4a439bc879abff9daf7 *go.d.plugin-v0.54.0.freebsd-amd64.tar.gz
-e1a2d0917c5953d015b4b76c3192d0035d8ef60e74856238be86a82ae2a8b3d4 *go.d.plugin-v0.54.0.freebsd-arm.tar.gz
-90560658753e5fde40081dcfda0a4121a4eed3fbb20e37dc834755ab1fa4e0ee *go.d.plugin-v0.54.0.freebsd-arm64.tar.gz
-9f46fdd7e047c767b9ef44d98e95f9b44af6ca0d252983d271052ed71a6663b3 *go.d.plugin-v0.54.0.linux-386.tar.gz
-9130a3c61e7ba756ef6694764a809a0e473654f9791dbb29761d02e24cdb6b65 *go.d.plugin-v0.54.0.linux-amd64.tar.gz
-a47973241ecc1dfed62eda7d7ed03ab2f4ead471119d1125e781f4823b915305 *go.d.plugin-v0.54.0.linux-arm.tar.gz
-b3dce37ef34f8780adb9aecc114d9ee67ba84f1b9300bcc9bc4467bd9129e659 *go.d.plugin-v0.54.0.linux-arm64.tar.gz
-f79cf85119b7a6e6b6ebfde0f09055ac690656e48e3e95b197a4349b9c809b3a *go.d.plugin-v0.54.0.linux-mips.tar.gz
-e599a40c3901dd1824763728ef75170fd462a52c95c8e8115ca20b687da51d28 *go.d.plugin-v0.54.0.linux-mips64.tar.gz
-b06f119dc0c971a59cae825487da959849b7e29f8a228367614be74e3f5e2f4e *go.d.plugin-v0.54.0.linux-mips64le.tar.gz
-a87f48d08b6dcb9d5a47f48eb543ee9f3a7c007c9212c394788099feb60d3943 *go.d.plugin-v0.54.0.linux-mipsle.tar.gz
-5da8a5dba19276eb0890d8cfe6f52b4d1ad006fb375ce27743ee24aa8875b739 *go.d.plugin-v0.54.0.linux-ppc64.tar.gz
-d69b565e6bbcc4b48e7d338cca2aef27ef68a456f2e818af1423d8a054cc4848 *go.d.plugin-v0.54.0.linux-ppc64le.tar.gz
+0f588819dc782600c02194ab6d438f08add7f988aef9c26a5247d2a3711eb5e2 *config.tar.gz
+31e91bb51f2f778429db958edb56783f70d05ed667d0d2a18f0506afa0fee8c4 *go.d.plugin-v0.54.1.darwin-amd64.tar.gz
+20f93b7647da0dccc0e547d7aede7e3919af623b0fb47f2e9afcebd2b7514895 *go.d.plugin-v0.54.1.darwin-arm64.tar.gz
+4d3be031dc3295844715cc7203bdd9d25721e3e954540ef9ba35644c2752a12d *go.d.plugin-v0.54.1.freebsd-386.tar.gz
+69580909637ea8657f9e4c4b41fa96d3ad8ba4128223861ea94137319d5b34bc *go.d.plugin-v0.54.1.freebsd-amd64.tar.gz
+5524dea9d1f9a215ace3df03d17a39380c832908a00303af6968c451dbbe91b2 *go.d.plugin-v0.54.1.freebsd-arm.tar.gz
+a711dfcae86bdc5de17f0bb57dd10b819871a9f8a4bfe696e1ca66c1850ca400 *go.d.plugin-v0.54.1.freebsd-arm64.tar.gz
+5174632ceb0755c68bccf09b055b72991e66bbd2df284352543767cfe872ff84 *go.d.plugin-v0.54.1.linux-386.tar.gz
+04a176020b00c591e98656b62b211e984eb141b550c3f7b547a7b0d462521b3a *go.d.plugin-v0.54.1.linux-amd64.tar.gz
+d7fabc7f349a2dbc079155b948e3675f49ba2fd2343716862ed07f2e7c77f8a7 *go.d.plugin-v0.54.1.linux-arm.tar.gz
+9fda860e329ca961d8fe64f4f18ee9803313be86621975af245d5b05f5487023 *go.d.plugin-v0.54.1.linux-arm64.tar.gz
+54cbee22bdfe96eb7e23606b06b42ac3d80af744fb1bbf70140893e4164d2e9f *go.d.plugin-v0.54.1.linux-mips.tar.gz
+e0c299a29b9c50068bad903281b16eaa3593427896f915c21e487304a5900497 *go.d.plugin-v0.54.1.linux-mips64.tar.gz
+a08c5e122e170cbf7cbec6664fdcf70b4328eb1d013db3c4a572c7339d1132f6 *go.d.plugin-v0.54.1.linux-mips64le.tar.gz
+53a4054526639044111406e766afb0805f60aa3ef2f0452c85c747578d3523e1 *go.d.plugin-v0.54.1.linux-mipsle.tar.gz
+fa4408a25feca43042e44388333dd6b502187e1736fffadcbc8058dfcaa3a61a *go.d.plugin-v0.54.1.linux-ppc64.tar.gz
+1218fdbf90518dfba671fc11cf313dd5ff5765a85b047a025255954df3ee314a *go.d.plugin-v0.54.1.linux-ppc64le.tar.gz
diff --git a/packaging/go.d.version b/packaging/go.d.version
index ec9d0044f..505136179 100644
--- a/packaging/go.d.version
+++ b/packaging/go.d.version
@@ -1 +1 @@
-v0.54.0
+v0.54.1
diff --git a/packaging/installer/README.md b/packaging/installer/README.md
index 9a9beb720..e241ccc59 100644
--- a/packaging/installer/README.md
+++ b/packaging/installer/README.md
@@ -38,12 +38,6 @@ but we have some hints on what you might want to do next.
Explore our [general advanced installation options and troubleshooting](#advanced-installation-options-and-troubleshooting), specific options
for the [single line installer](#install-on-linux-with-one-line-installer), or [other installation methods](#other-installation-methods).
-#### Agent user interface
-
-To access the UI provided by the locally installed agent, open a browser and navigate to `http://NODE:19999`, replacing `NODE` with either `localhost` or
-the hostname/IP address of the remote node. You can also read more about
-[the agent dashboard](https://github.com/netdata/netdata/blob/master/web/gui/README.md).
-
#### Configuration
Discover the recommended way to [configure Netdata's settings or behavior](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md) using our built-in
@@ -94,7 +88,7 @@ To install, copy the script, paste it into your node's terminal, and hit `Enter`
> If you plan to also claim the node to Netdata Cloud, make sure to replace `YOUR_CLAIM_TOKEN` with the claim token of your space, and `YOUR_ROOM_ID` with the ID of the room you are claiming to.
> You can leave the room id blank to have your node claimed to the default "All nodes" room.
-Jump down to [what's next](#whats-next) to learn how to view your new dashboard and take your next steps monitoring and
+Jump up to [what's next](#whats-next) to learn how to view your new dashboard and take your next steps in monitoring and
troubleshooting with Netdata.
## Other installation methods
@@ -227,7 +221,7 @@ PowerTools, to gather hard dependencies. See the [CentOS 6](https://github.com/n
#### Access to file is not permitted
-If you see an error similar to `Access to file is not permitted: /usr/share/netdata/web//index.html` when you try to
+If you see an error similar to `Access to file is not permitted: /usr/share/netdata/web/index.html` when you try to
visit the Agent dashboard at `http://NODE:19999`, you need to update Netdata's permissions to match those of your
system.
@@ -244,7 +238,7 @@ These files need to have the same user and group used to install your netdata. S
`netdata` and group `netdata`, in this scenario you will need to run the following command to fix the error:
```bash
-# chown -R netdata.netdata /usr/share/netdata/web
+# chown -R netdata:netdata /usr/share/netdata/web
```
#### Multiple versions of OpenSSL
diff --git a/packaging/installer/UPDATE.md b/packaging/installer/UPDATE.md
index 492f464e4..b1f779162 100644
--- a/packaging/installer/UPDATE.md
+++ b/packaging/installer/UPDATE.md
@@ -182,3 +182,6 @@ The following configuration options are currently supported:
as a scheduled task. This random delay helps avoid issues resulting from too many nodes trying to reconnect to
the Cloud at the same time. The default value is 3600, which corresponds to one hour. Most users should not ever
need to change this.
+- `NETDATA_NO_SYSTEMD_JOURNAL`: If set to a value other than 0, skip attempting to install the
+ `netdata-plugin-systemd-journal` package on supported systems on update. This optional package will be installed
+ by default on supported systems by the updater if this option is not set. Only affects systems using native packages.
diff --git a/packaging/installer/dependencies/centos.sh b/packaging/installer/dependencies/centos.sh
index 845f1113a..7d7c6cb40 100755
--- a/packaging/installer/dependencies/centos.sh
+++ b/packaging/installer/dependencies/centos.sh
@@ -5,30 +5,31 @@
set -e
declare -a package_tree=(
- gcc
- gcc-c++
- make
autoconf
autoconf-archive
automake
+ cmake
+ curl
+ elfutils-libelf-devel
+ gcc
+ gcc-c++
+ git
+ gzip
+ json-c-devel
libatomic
+ libmnl-devel
libtool
- pkgconfig
- cmake
- zlib-devel
libuuid-devel
- libmnl-devel
- json-c-devel
- libyaml-devel
libuv-devel
+ libyaml-devel
lz4-devel
+ make
openssl-devel
+ pkgconfig
python3
- elfutils-libelf-devel
- git
+ systemd-devel
tar
- curl
- gzip
+ zlib-devel
)
os_version() {
diff --git a/packaging/installer/dependencies/clearlinux.sh b/packaging/installer/dependencies/clearlinux.sh
index f6f616d66..67d3ea24f 100755
--- a/packaging/installer/dependencies/clearlinux.sh
+++ b/packaging/installer/dependencies/clearlinux.sh
@@ -9,22 +9,23 @@ DONT_WAIT=0
declare -a package_tree=(
c-basic
- make
- sysadmin-basic
- devpkg-zlib
- devpkg-util-linux
- devpkg-libmnl
+ curl
+ devpkg-elfutils
devpkg-json-c
- yaml-dev
+ devpkg-libmnl
devpkg-libuv
devpkg-lz4
devpkg-openssl
- devpkg-elfutils
- git
+ devpkg-util-linux
+ devpkg-zlib
findutils
- curl
+ git
gzip
+ make
python3-basic
+ service-os-dev
+ sysadmin-basic
+ yaml-dev
)
usage() {
diff --git a/packaging/installer/dependencies/debian.sh b/packaging/installer/dependencies/debian.sh
index 8186940e5..09a5d6338 100755
--- a/packaging/installer/dependencies/debian.sh
+++ b/packaging/installer/dependencies/debian.sh
@@ -8,32 +8,33 @@ NON_INTERACTIVE=0
DONT_WAIT=0
package_tree="
- git
- gcc
- g++
- make
- automake
- cmake
autoconf
autoconf-archive
autogen
- libatomic1
- libtool
- pkg-config
- tar
+ automake
+ cmake
curl
+ g++
+ gcc
+ git
gzip
- zlib1g-dev
- uuid-dev
- libmnl-dev
+ libatomic1
+ libelf-dev
libjson-c-dev
- libuv1-dev
liblz4-dev
+ libmnl-dev
libssl-dev
- libelf-dev
+ libsystemd-dev
+ libtool
+ libuv1-dev
libyaml-dev
+ make
+ pkg-config
python
python3
+ tar
+ uuid-dev
+ zlib1g-dev
"
usage() {
diff --git a/packaging/installer/dependencies/fedora.sh b/packaging/installer/dependencies/fedora.sh
index 589122882..a457ef2e2 100755
--- a/packaging/installer/dependencies/fedora.sh
+++ b/packaging/installer/dependencies/fedora.sh
@@ -24,32 +24,33 @@ else
fi
declare -a package_tree=(
- findutils
- gcc
- gcc-c++
- make
autoconf
autoconf-archive
autogen
automake
+ cmake
+ curl
+ elfutils-libelf-devel
+ findutils
+ gcc
+ gcc-c++
+ git
+ gzip
+ json-c-devel
libatomic
+ libmnl-devel
libtool
- cmake
- zlib-devel
libuuid-devel
- libmnl-devel
- json-c-devel
- libyaml-devel
libuv-devel
+ libyaml-devel
lz4-devel
+ make
openssl-devel
- elfutils-libelf-devel
- git
pkgconfig
- tar
- curl
- gzip
python3
+ systemd-devel
+ tar
+ zlib-devel
"${ulogd_pkg}"
)
diff --git a/packaging/installer/dependencies/ol.sh b/packaging/installer/dependencies/ol.sh
index 2166bcc50..f0d8341f1 100755
--- a/packaging/installer/dependencies/ol.sh
+++ b/packaging/installer/dependencies/ol.sh
@@ -8,31 +8,32 @@ NON_INTERACTIVE=0
DONT_WAIT=0
declare -a package_tree=(
- gcc
- gcc-c++
- make
autoconf
autoconf-archive
autogen
automake
+ cmake
+ curl
+ elfutils-libelf-devel
+ gcc
+ gcc-c++
+ git
+ gzip
+ json-c-devel
libatomic
+ libmnl-devel
libtool
- pkgconfig
- cmake
- tar
- zlib-devel
libuuid-devel
- libmnl-devel
- json-c-devel
- libyaml-devel
libuv-devel
+ libyaml-devel
lz4-devel
+ make
openssl-devel
+ pkgconfig
python3
- elfutils-libelf-devel
- git
- curl
- gzip
+ systemd-devel
+ tar
+ zlib-devel
)
prompt() {
diff --git a/packaging/installer/dependencies/opensuse.sh b/packaging/installer/dependencies/opensuse.sh
index 81291ef72..3f14d58be 100755
--- a/packaging/installer/dependencies/opensuse.sh
+++ b/packaging/installer/dependencies/opensuse.sh
@@ -10,31 +10,32 @@ NON_INTERACTIVE=0
DONT_WAIT=0
declare -a package_tree=(
- gcc
- gcc-c++
- make
autoconf
autoconf-archive
autogen
automake
- libatomic1
- libtool
- pkg-config
cmake
- zlib-devel
- libuuid-devel
- libmnl-devel
+ curl
+ gcc
+ gcc-c++
+ git
+ gzip
+ libatomic1
+ libelf-devel
libjson-c-devel
- libyaml-devel
- libuv-devel
liblz4-devel
+ libmnl-devel
libopenssl-devel
- libelf-devel
- git
- tar
- curl
- gzip
+ libtool
+ libuuid-devel
+ libuv-devel
+ libyaml-devel
+ make
+ pkg-config
python3
+ systemd-devel
+ tar
+ zlib-devel
)
usage() {
diff --git a/packaging/installer/dependencies/rockylinux.sh b/packaging/installer/dependencies/rockylinux.sh
index 7ac98f5e2..f90b997bb 100755
--- a/packaging/installer/dependencies/rockylinux.sh
+++ b/packaging/installer/dependencies/rockylinux.sh
@@ -8,31 +8,32 @@ NON_INTERACTIVE=0
DONT_WAIT=0
declare -a package_tree=(
- gcc
- gcc-c++
- make
autoconf
autoconf-archive
autogen
automake
+ cmake
+ curl
+ elfutils-libelf-devel
+ gcc
+ gcc-c++
+ git
+ gzip
+ json-c-devel
libatomic
+ libmnl-devel
libtool
- pkgconfig
- cmake
- zlib-devel
libuuid-devel
- libmnl-devel
- json-c-devel
- libyaml-devel
libuv-devel
+ libyaml-devel
lz4-devel
+ make
openssl-devel
+ pkgconfig
python3
- elfutils-libelf-devel
- git
+ systemd-devel
tar
- curl
- gzip
+ zlib-devel
)
prompt() {
diff --git a/packaging/installer/dependencies/ubuntu.sh b/packaging/installer/dependencies/ubuntu.sh
index e3d734c68..a5dc2eae5 100755
--- a/packaging/installer/dependencies/ubuntu.sh
+++ b/packaging/installer/dependencies/ubuntu.sh
@@ -8,31 +8,32 @@ NON_INTERACTIVE=0
DONT_WAIT=0
package_tree="
- git
- gcc
- g++
- make
- automake
- cmake
autoconf
autoconf-archive
autogen
- libatomic1
- libtool
- pkg-config
- tar
+ automake
+ cmake
curl
+ g++
+ gcc
+ git
gzip
- zlib1g-dev
- uuid-dev
- libmnl-dev
+ libatomic1
+ libelf-dev
libjson-c-dev
- libyaml-dev
- libuv1-dev
liblz4-dev
+ libmnl-dev
libssl-dev
- libelf-dev
+ libsystemd-dev
+ libtool
+ libuv1-dev
+ libyaml-dev
+ make
+ pkg-config
python3
+ tar
+ uuid-dev
+ zlib1g-dev
"
usage() {
cat << EOF
diff --git a/packaging/installer/install-required-packages.sh b/packaging/installer/install-required-packages.sh
index a05d7440e..9eba38457 100755
--- a/packaging/installer/install-required-packages.sh
+++ b/packaging/installer/install-required-packages.sh
@@ -708,6 +708,19 @@ declare -A pkg_libatomic=(
['default']="libatomic"
)
+declare -A pkg_libsystemd_dev=(
+ ['alpine']="NOTREQUIRED"
+ ['arch']="NOTREQUIRED" # inherently present on systems actually using systemd
+ ['clearlinux']="system-os-dev"
+ ['debian']="libsystemd-dev"
+ ['freebsd']="NOTREQUIRED"
+ ['gentoo']="NOTREQUIRED" # inherently present on systems actually using systemd
+ ['macos']="NOTREQUIRED"
+ ['sabayon']="NOTREQUIRED" # inherently present on systems actually using systemd
+ ['ubuntu']="libsystemd-dev"
+ ['default']="systemd-devel"
+)
+
declare -A pkg_bridge_utils=(
['gentoo']="net-misc/bridge-utils"
['clearlinux']="network-basic"
@@ -1247,6 +1260,7 @@ packages() {
suitable_package libmnl-dev
suitable_package json-c-dev
suitable_package libyaml-dev
+ suitable_package libsystemd-dev
fi
# -------------------------------------------------------------------------
diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh
index 31930f9d4..2d793eafd 100755
--- a/packaging/installer/kickstart.sh
+++ b/packaging/installer/kickstart.sh
@@ -50,7 +50,7 @@ SELECTED_INSTALL_METHOD="none"
INSTALL_TYPE="unknown"
INSTALL_PREFIX=""
NETDATA_AUTO_UPDATES="default"
-NETDATA_CLAIM_URL="https://api.netdata.cloud"
+NETDATA_CLAIM_URL="https://app.netdata.cloud"
NETDATA_COMMAND="default"
NETDATA_DISABLE_CLOUD=0
NETDATA_INSTALLER_OPTIONS=""
@@ -257,14 +257,16 @@ telemetry_event() {
TOTAL_RAM="$((TOTAL_RAM * 1024))"
fi
+ MD5_PATH="$(exec <&- 2>&-; which md5sum || command -v md5sum || type md5sum)"
+
if [ "${KERNEL_NAME}" = Darwin ] && command -v ioreg >/dev/null 2>&1; then
DISTINCT_ID="macos-$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')"
- elif [ -f /etc/machine-id ]; then
- DISTINCT_ID="machine-$(cat /etc/machine-id)"
- elif [ -f /var/db/dbus/machine-id ]; then
- DISTINCT_ID="dbus-$(cat /var/db/dbus/machine-id)"
- elif [ -f /var/lib/dbus/machine-id ]; then
- DISTINCT_ID="dbus-$(cat /var/lib/dbus/machine-id)"
+ elif [ -f /etc/machine-id ] && [ -n "$MD5_PATH" ]; then
+ DISTINCT_ID="machine-$($MD5_PATH < /etc/machine-id | cut -f1 -d" ")"
+ elif [ -f /var/db/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
+ DISTINCT_ID="dbus-$($MD5_PATH < /var/db/dbus/machine-id | cut -f1 -d" ")"
+ elif [ -f /var/lib/dbus/machine-id ] && [ -n "$MD5_PATH" ]; then
+ DISTINCT_ID="dbus-$($MD5_PATH < /var/lib/dbus/machine-id | cut -f1 -d" ")"
elif command -v uuidgen > /dev/null 2>&1; then
DISTINCT_ID="uuid-$(uuidgen | tr '[:upper:]' '[:lower:]')"
else
@@ -300,7 +302,8 @@ telemetry_event() {
"system_kernel_name": "${KERNEL_NAME}",
"system_kernel_version": "$(uname -r)",
"system_architecture": "$(uname -m)",
- "system_total_ram": "${TOTAL_RAM:-unknown}"
+ "system_total_ram": "${TOTAL_RAM:-unknown}",
+ "system_distinct_id": "${DISTINCT_ID}"
}
}
EOF
@@ -1330,7 +1333,7 @@ check_special_native_deps() {
progress "EPEL is available, attempting to install so that required dependencies are available."
# shellcheck disable=SC2086
- if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} epel-release; then
+ if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} epel-release; then
warning "Failed to install EPEL, even though it is required to install native packages on this system."
return 1
fi
@@ -1350,12 +1353,16 @@ common_rpm_opts() {
}
common_dnf_opts() {
+ if [ "${INTERACTIVE}" = "0" ]; then
+ interactive_opts="-y"
+ fi
if command -v dnf > /dev/null; then
pm_cmd="dnf"
repo_subcmd="makecache"
else
pm_cmd="yum"
fi
+ install_subcmd="install"
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
uninstall_subcmd="remove"
@@ -1390,16 +1397,18 @@ try_package_install() {
release=""
fi
- if [ "${INTERACTIVE}" = "0" ]; then
- interactive_opts="-y"
- env="DEBIAN_FRONTEND=noninteractive"
- else
- interactive_opts=""
- env=""
- fi
+ interactive_opts=""
+ env=""
case "${DISTRO_COMPAT_NAME}" in
debian|ubuntu)
+ if [ "${INTERACTIVE}" = "0" ]; then
+ install_subcmd="-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install"
+ interactive_opts="-y"
+ env="DEBIAN_FRONTEND=noninteractive"
+ else
+ install_subcmd="install"
+ fi
needs_early_refresh=1
pm_cmd="apt-get"
repo_subcmd="update"
@@ -1427,6 +1436,11 @@ try_package_install() {
repo_prefix="${DISTRO_COMPAT_NAME}/${SYSVERSION}"
;;
opensuse)
+ if [ "${INTERACTIVE}" = "0" ]; then
+ install_subcmd="--non-interactive --no-gpg-checks install"
+ else
+ install_subcmd="--no-gpg-checks install"
+ fi
common_rpm_opts
pm_cmd="zypper"
repo_subcmd="--gpg-auto-import-keys refresh"
@@ -1497,7 +1511,7 @@ try_package_install() {
fi
# shellcheck disable=SC2086
- if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} "${tmpdir}/${repoconfig_file}"; then
+ if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} "${tmpdir}/${repoconfig_file}"; then
warning "Failed to install repository configuration package."
return 2
fi
@@ -1546,7 +1560,7 @@ try_package_install() {
fi
# shellcheck disable=SC2086
- if ! run_as_root env ${env} ${pm_cmd} install ${pkg_install_opts} "netdata${NATIVE_VERSION}"; then
+ if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} "netdata${NATIVE_VERSION}"; then
warning "Failed to install Netdata package."
if [ -z "${NO_CLEANUP}" ]; then
progress "Attempting to uninstall repository configuration package."
@@ -1559,7 +1573,7 @@ try_package_install() {
if [ -n "${explicitly_install_native_plugins}" ]; then
progress "Installing external plugins."
# shellcheck disable=SC2086
- if ! run_as_root env ${env} ${pm_cmd} install ${DEFAULT_PLUGIN_PACKAGES}; then
+ if ! run_as_root env ${env} ${pm_cmd} ${install_subcmd} ${DEFAULT_PLUGIN_PACKAGES}; then
warning "Failed to install external plugin packages. Some collectors may not be available."
fi
fi
diff --git a/packaging/installer/methods/kickstart.md b/packaging/installer/methods/kickstart.md
index 374ac594a..bdead412e 100644
--- a/packaging/installer/methods/kickstart.md
+++ b/packaging/installer/methods/kickstart.md
@@ -98,13 +98,13 @@ The `kickstart.sh` script accepts a number of optional parameters to control how
- `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in.
- `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy.
See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details.
-- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`.
+- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://app.netdata.cloud`.
- `--override-distro`: Override the distro detection logic and assume the system is using a specific Linux distribution and release. Takes a single argument consisting of the values of the `ID`, `VERSION_ID`, and `VERSION_CODENAME` fields from `/etc/os-release` for the desired distribution.
The following options are mutually exclusive and specifiy special operations other than trying to install Netdata normally or update an existing install:
- `--reinstall`: If there is an existing install, reinstall it instead of trying to update it. If there is not an existing install, install netdata normally.
-- `--reinstall-even-if-unsafe`: If there is an existing install, reinstall it instead of trying to update it, even if doing so is known to potentially break things (for example, if we cannot detect what tyep of installation it is). If there is not an existing install, install Netdata normally.
+- `--reinstall-even-if-unsafe`: If there is an existing install, reinstall it instead of trying to update it, even if doing so is known to potentially break things (for example, if we cannot detect what type of installation it is). If there is not an existing install, install Netdata normally.
- `--reinstall-clean`: If there is an existing install, uninstall it before trying to install Netdata. Fails if there is no existing install.
- `--uninstall`: Uninstall an existing installation of Netdata. Fails if there is no existing install.
- `--claim-only`: If there is an existing install, only try to claim it without attempting to update it. If there is no existing install, install and claim Netdata normally.
diff --git a/packaging/installer/methods/macos.md b/packaging/installer/methods/macos.md
index b09632fa1..e7ff33ed7 100644
--- a/packaging/installer/methods/macos.md
+++ b/packaging/installer/methods/macos.md
@@ -45,11 +45,11 @@ area](https://github.com/netdata/netdata/blob/master/docs/cloud/manage/organize-
- `--claim-rooms`: Specify a comma-separated list of tokens for each War Room this node should appear in.
- `--claim-proxy`: Specify a proxy to use when connecting to the cloud in the form of `http://[user:pass@]host:ip` for an HTTP(S) proxy.
See [connecting through a proxy](https://github.com/netdata/netdata/blob/master/claim/README.md#connect-through-a-proxy) for details.
-- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://api.netdata.cloud`.
+- `--claim-url`: Specify a URL to use when connecting to the cloud. Defaults to `https://app.netdata.cloud`.
For example:
```bash
-curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://api.netdata.cloud
+curl https://my-netdata.io/kickstart.sh > /tmp/netdata-kickstart.sh && sh /tmp/netdata-kickstart.sh --install-prefix /usr/local/ --claim-token TOKEN --claim-rooms ROOM1,ROOM2 --claim-url https://app.netdata.cloud
```
The Netdata Agent is installed under `/usr/local/netdata` on your machine. Your machine will also show up as a node in your Netdata Cloud.
diff --git a/packaging/installer/netdata-updater.sh b/packaging/installer/netdata-updater.sh
index 8e06923e4..811657c21 100755
--- a/packaging/installer/netdata-updater.sh
+++ b/packaging/installer/netdata-updater.sh
@@ -37,7 +37,9 @@ PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packag
NETDATA_STABLE_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata/releases}"
NETDATA_NIGHTLY_BASE_URL="${NETDATA_BASE_URL:-https://github.com/netdata/netdata-nightlies/releases}"
+# Following variables are intended to be overridden by the updater config file.
NETDATA_UPDATER_JITTER=3600
+NETDATA_NO_SYSTEMD_JOURNAL=0
script_dir="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)"
@@ -744,42 +746,57 @@ update_binpkg() {
esac
fi
- if [ "${INTERACTIVE}" = "0" ]; then
- interactive_opts="-y"
- env="DEBIAN_FRONTEND=noninteractive"
- else
- interactive_opts=""
- env=""
- fi
+ interactive_opts=""
+ env=""
case "${DISTRO_COMPAT_NAME}" in
debian|ubuntu)
+ if [ "${INTERACTIVE}" = "0" ]; then
+ upgrade_subcmd="-o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold --only-upgrade install"
+ interactive_opts="-y"
+ env="DEBIAN_FRONTEND=noninteractive"
+ else
+ upgrade_subcmd="--only-upgrade install"
+ fi
pm_cmd="apt-get"
repo_subcmd="update"
- upgrade_cmd="--only-upgrade install"
+ install_subcmd="install"
+ mark_auto_cmd="apt-mark auto"
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
- pkg_installed_check="dpkg -s"
+ pkg_installed_check="dpkg-query -s"
INSTALL_TYPE="binpkg-deb"
;;
centos|fedora|ol|amzn)
+ if [ "${INTERACTIVE}" = "0" ]; then
+ interactive_opts="-y"
+ fi
if command -v dnf > /dev/null; then
pm_cmd="dnf"
repo_subcmd="makecache"
+ mark_auto_cmd="dnf mark remove"
else
pm_cmd="yum"
+ mark_auto_cmd="yumdb set reason dep"
fi
- upgrade_cmd="upgrade"
+ upgrade_subcmd="upgrade"
+ install_subcmd="install"
pkg_install_opts="${interactive_opts}"
repo_update_opts="${interactive_opts}"
pkg_installed_check="rpm -q"
INSTALL_TYPE="binpkg-rpm"
;;
opensuse)
+ if [ "${INTERACTIVE}" = "0" ]; then
+ upgrade_subcmd="--non-interactive update"
+ else
+ upgrade_subcmd="update"
+ fi
pm_cmd="zypper"
repo_subcmd="--gpg-auto-import-keys refresh"
- upgrade_cmd="update"
- pkg_install_opts="${interactive_opts}"
+ install_subcmd="install"
+ mark_auto_cmd=""
+ pkg_install_opts=""
repo_update_opts=""
pkg_installed_check="rpm -q"
INSTALL_TYPE="binpkg-rpm"
@@ -798,7 +815,7 @@ update_binpkg() {
for repopkg in netdata-repo netdata-repo-edge; do
if ${pkg_installed_check} ${repopkg} > /dev/null 2>&1; then
# shellcheck disable=SC2086
- env ${env} ${pm_cmd} ${upgrade_cmd} ${pkg_install_opts} ${repopkg} >&3 2>&3 || fatal "Failed to update Netdata repository config." U000D
+ env ${env} ${pm_cmd} ${upgrade_subcmd} ${pkg_install_opts} ${repopkg} >&3 2>&3 || fatal "Failed to update Netdata repository config." U000D
# shellcheck disable=SC2086
if [ -n "${repo_subcmd}" ]; then
env ${env} ${pm_cmd} ${repo_subcmd} ${repo_update_opts} >&3 2>&3 || fatal "Failed to update repository metadata." U000E
@@ -807,7 +824,21 @@ update_binpkg() {
done
# shellcheck disable=SC2086
- env ${env} ${pm_cmd} ${upgrade_cmd} ${pkg_install_opts} netdata >&3 2>&3 || fatal "Failed to update Netdata package." U000F
+ env ${env} ${pm_cmd} ${upgrade_subcmd} ${pkg_install_opts} netdata >&3 2>&3 || fatal "Failed to update Netdata package." U000F
+
+ if ${pkg_installed_check} systemd > /dev/null 2>&1; then
+ if [ "${NETDATA_NO_SYSTEMD_JOURNAL}" -eq 0 ]; then
+ if ! ${pkg_installed_check} netdata-plugin-systemd-journal > /dev/null 2>&1; then
+ env ${env} ${pm_cmd} ${install_subcmd} ${pkg_install_opts} netdata-plugin-systemd-journal >&3 2>&3
+
+ if [ -n "${mark_auto_cmd}" ]; then
+ # shellcheck disable=SC2086
+ env ${env} ${mark_auto_cmd} netdata-plugin-systemd-journal >&3 2>&3
+ fi
+ fi
+ fi
+ fi
+
[ -n "${logfile}" ] && rm "${logfile}" && logfile=
return 0
}
diff --git a/packaging/makeself/jobs/99-makeself.install.sh b/packaging/makeself/jobs/99-makeself.install.sh
index aa1acd100..2695e8eb4 100755
--- a/packaging/makeself/jobs/99-makeself.install.sh
+++ b/packaging/makeself/jobs/99-makeself.install.sh
@@ -46,6 +46,12 @@ exec "${NETDATA_INSTALL_PATH}/bin/srv/netdata" "\${@}"
EOF
run chmod 755 "${NETDATA_INSTALL_PATH}/bin/netdata"
+# -----------------------------------------------------------------------------
+# the claiming script must be in the same directory as the netdata binary for web-based claiming to work
+
+run ln -s "${NETDATA_INSTALL_PATH}/bin/netdata-claim.sh" \
+ "${NETDATA_INSTALL_PATH}/bin/srv/netdata-claim.sh" || exit 1
+
# -----------------------------------------------------------------------------
# copy the SSL/TLS configuration and certificates from the build system
diff --git a/packaging/version b/packaging/version
index 067a092d5..51e6dd783 100644
--- a/packaging/version
+++ b/packaging/version
@@ -1 +1 @@
-v1.41.0
+v1.42.0
diff --git a/registry/registry.c b/registry/registry.c
index b63c6db0f..0393389ea 100644
--- a/registry/registry.c
+++ b/registry/registry.c
@@ -58,7 +58,7 @@ static inline void registry_set_person_cookie(struct web_client *w, REGISTRY_PER
static inline void registry_json_header(RRDHOST *host, struct web_client *w, const char *action, const char *status) {
buffer_flush(w->response.data);
w->response.data->content_type = CT_APPLICATION_JSON;
- buffer_json_initialize(w->response.data, "\"", "\"", 0, true, true);
+ buffer_json_initialize(w->response.data, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(w->response.data, "action", action);
buffer_json_member_add_string(w->response.data, "status", status);
buffer_json_member_add_string(w->response.data, "hostname", rrdhost_registry_hostname(host));
@@ -186,8 +186,11 @@ int registry_request_hello_json(RRDHOST *host, struct web_client *w) {
}
buffer_json_object_close(w->response.data);
- buffer_json_member_add_string(w->response.data, "registry", registry.registry_to_announce);
+ CLOUD_STATUS status = cloud_status();
+ buffer_json_member_add_string(w->response.data, "cloud_status", cloud_status_to_string(status));
buffer_json_member_add_string(w->response.data, "cloud_base_url", registry.cloud_base_url);
+
+ buffer_json_member_add_string(w->response.data, "registry", registry.registry_to_announce);
buffer_json_member_add_boolean(w->response.data, "anonymous_statistics", netdata_anonymous_statistics_enabled);
buffer_json_member_add_array(w->response.data, "nodes");
diff --git a/spawn/spawn.c b/spawn/spawn.c
index a9359da04..b7839ad68 100644
--- a/spawn/spawn.c
+++ b/spawn/spawn.c
@@ -199,12 +199,12 @@ int create_spawn_server(uv_loop_t *loop, uv_pipe_t *spawn_channel, uv_process_t
passwd = getpwuid(getuid());
user = (passwd && passwd->pw_name) ? passwd->pw_name : "";
- args[0] = exepath;
+ args[0] = netdata_exe_file;
args[1] = SPAWN_SERVER_COMMAND_LINE_ARGUMENT;
args[2] = NULL;
memset(&options, 0, sizeof(options));
- options.file = exepath;
+ options.file = netdata_exe_file;
options.args = args;
options.exit_cb = NULL; //exit_cb;
options.stdio = stdio;
@@ -219,7 +219,7 @@ int create_spawn_server(uv_loop_t *loop, uv_pipe_t *spawn_channel, uv_process_t
ret = uv_spawn(loop, process, &options); /* execute the netdata binary again as the netdata user */
if (0 != ret) {
- netdata_log_error("uv_spawn (process: \"%s\") (user: %s) failed (%s).", exepath, user, uv_strerror(ret));
+ netdata_log_error("uv_spawn (process: \"%s\") (user: %s) failed (%s).", netdata_exe_file, user, uv_strerror(ret));
fatal("Cannot start netdata without the spawn server.");
}
diff --git a/system/edit-config b/system/edit-config
index 96ee82d4f..74f3634c3 100755
--- a/system/edit-config
+++ b/system/edit-config
@@ -57,6 +57,12 @@ is_prefix() {
}
check_directories() {
+ if [ -f "${script_dir}/.container-hostname" ]; then
+ NETDATA_USER_CONFIG_DIR="${script_dir}"
+ NETDATA_STOCK_CONFIG_DIR="/usr/lib/netdata/conf.d"
+ return
+ fi
+
if [ -e "${script_dir}/.environment" ]; then
OLDPATH="${PATH}"
# shellcheck disable=SC1091
diff --git a/system/netdata-updater.conf b/system/netdata-updater.conf
index 6cf2062a1..09af046be 100644
--- a/system/netdata-updater.conf
+++ b/system/netdata-updater.conf
@@ -5,3 +5,17 @@
# actually running the update. The default is 3600 (one
# hour). Most users should not need to change this.
#NETDATA_UPDATER_JITTER="3600"
+
+# On systems using our native packages, the updater will by default
+# attempt to install optional plugin packages that would be installed by
+# default on clean installs if those packages are supported on the system.
+#
+# This behavior can be disabled on a per-package basis using the below
+# variables. Setting the variable to a value other than 0 will disable
+# the corresponding package (note that you still need to remove the package
+# yourself if you don0t want it, this just controls whether the updater
+# will try to ensure it’s installed or not).
+#
+# NETDATA_NO_SYSTEMD_JOURNAL controls the `netdata-plugin-systemd-journal`
+# package, which provides the systemd journal plugin for Netdata.
+#NETDATA_NO_SYSTEMD_JOURNAL="0"
diff --git a/tests/alarm_repetition/netdata.conf_with_repetition b/tests/alarm_repetition/netdata.conf_with_repetition
index e1424abfd..5a1d88b51 100644
--- a/tests/alarm_repetition/netdata.conf_with_repetition
+++ b/tests/alarm_repetition/netdata.conf_with_repetition
@@ -51,4 +51,4 @@
allow from = *
[cloud]
- cloud base url = https://api.netdata.cloud
+ cloud base url = https://app.netdata.cloud
diff --git a/tests/alarm_repetition/netdata.conf_without_repetition b/tests/alarm_repetition/netdata.conf_without_repetition
index f11b1632d..e78cef272 100644
--- a/tests/alarm_repetition/netdata.conf_without_repetition
+++ b/tests/alarm_repetition/netdata.conf_without_repetition
@@ -51,4 +51,4 @@
allow from = *
[cloud]
- cloud base url = https://api.netdata.cloud
+ cloud base url = https://app.netdata.cloud
diff --git a/web/api/badges/README.md b/web/api/badges/README.md
index e40e706eb..e83186bb2 100644
--- a/web/api/badges/README.md
+++ b/web/api/badges/README.md
@@ -157,7 +157,7 @@ Here is what you can put for `options` (these are standard Netdata API options):
These fine tune various options of the API. Here is what you can use for badges (the API has more option, but only these are useful for badges):
- - `percentage`, instead of returning the value, calculate the percentage of the sum of the selected dimensions, versus the sum of all the dimensions of the chart. This also sets the units to `%`.
+ - `percentage`, instead of returning a value, calculate the percentage of the sum of the values of the selected dimensions (selected sum / total sum * 100). This also sets the units to `%`.
- `absolute` or `abs`, turn all values positive and then sum them.
diff --git a/web/api/badges/web_buffer_svg.c b/web/api/badges/web_buffer_svg.c
index 36150b93e..9b81ba4fb 100644
--- a/web/api/badges/web_buffer_svg.c
+++ b/web/api/badges/web_buffer_svg.c
@@ -1057,8 +1057,10 @@ int web_client_api_request_v1_badge(RRDHOST *host, struct web_client *w, char *u
buffer_sprintf(w->response.header, "Refresh: %d\r\n", refresh);
w->response.data->date = now_realtime_sec();
w->response.data->expires = w->response.data->date + refresh;
+ buffer_cacheable(w->response.data);
}
- else buffer_no_cacheable(w->response.data);
+ else
+ buffer_no_cacheable(w->response.data);
if(!value_color) {
switch(rc->status) {
diff --git a/web/api/formatters/json_wrapper.c b/web/api/formatters/json_wrapper.c
index 6a66cbcca..52025c9fc 100644
--- a/web/api/formatters/json_wrapper.c
+++ b/web/api/formatters/json_wrapper.c
@@ -874,7 +874,7 @@ void rrdr_json_wrapper_begin(RRDR *r, BUFFER *wb) {
sq[0] = '"';
}
- buffer_json_initialize(wb, kq, sq, 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, kq, sq, 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_uint64(wb, "api", 1);
buffer_json_member_add_string(wb, "id", qt->id);
@@ -1289,7 +1289,7 @@ void rrdr_json_wrapper_begin2(RRDR *r, BUFFER *wb) {
sq[0] = '\'';
}
- buffer_json_initialize(wb, kq, sq, 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, kq, sq, 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_uint64(wb, "api", 2);
if(options & RRDR_OPTION_DEBUG) {
diff --git a/web/api/formatters/rrd2json.h b/web/api/formatters/rrd2json.h
index ca3a41aae..f0c0c39ba 100644
--- a/web/api/formatters/rrd2json.h
+++ b/web/api/formatters/rrd2json.h
@@ -38,8 +38,6 @@ typedef enum {
#define HOSTNAME_MAX 1024
-#define API_RELATIVE_TIME_MAX (3 * 365 * 86400)
-
#define DATASOURCE_FORMAT_JSON "json"
#define DATASOURCE_FORMAT_JSON2 "json2"
#define DATASOURCE_FORMAT_DATATABLE_JSON "datatable"
diff --git a/web/api/queries/incremental_sum/incremental_sum.h b/web/api/queries/incremental_sum/incremental_sum.h
index dd6483b2c..f110c5861 100644
--- a/web/api/queries/incremental_sum/incremental_sum.h
+++ b/web/api/queries/incremental_sum/incremental_sum.h
@@ -12,19 +12,20 @@ struct tg_incremental_sum {
size_t count;
};
-static inline void tg_incremental_sum_create(RRDR *r, const char *options __maybe_unused) {
- r->time_grouping.data = onewayalloc_callocz(r->internal.owa, 1, sizeof(struct tg_incremental_sum));
-}
-
// resets when switches dimensions
// so, clear everything to restart
static inline void tg_incremental_sum_reset(RRDR *r) {
struct tg_incremental_sum *g = (struct tg_incremental_sum *)r->time_grouping.data;
- g->first = 0;
- g->last = 0;
+ g->first = NAN;
+ g->last = NAN;
g->count = 0;
}
+static inline void tg_incremental_sum_create(RRDR *r, const char *options __maybe_unused) {
+ r->time_grouping.data = onewayalloc_mallocz(r->internal.owa, sizeof(struct tg_incremental_sum));
+ tg_incremental_sum_reset(r);
+}
+
static inline void tg_incremental_sum_free(RRDR *r) {
onewayalloc_freez(r->internal.owa, r->time_grouping.data);
r->time_grouping.data = NULL;
@@ -34,7 +35,11 @@ static inline void tg_incremental_sum_add(RRDR *r, NETDATA_DOUBLE value) {
struct tg_incremental_sum *g = (struct tg_incremental_sum *)r->time_grouping.data;
if(unlikely(!g->count)) {
- g->first = value;
+ if(isnan(g->first))
+ g->first = value;
+ else
+ g->last = value;
+
g->count++;
}
else {
@@ -48,19 +53,16 @@ static inline NETDATA_DOUBLE tg_incremental_sum_flush(RRDR *r, RRDR_VALUE_FLAGS
NETDATA_DOUBLE value;
- if(unlikely(!g->count)) {
+ if(unlikely(!g->count || isnan(g->first) || isnan(g->last))) {
value = 0.0;
*rrdr_value_options_ptr |= RRDR_VALUE_EMPTY;
}
- else if(unlikely(g->count == 1)) {
- value = 0.0;
- }
else {
value = g->last - g->first;
}
- g->first = 0.0;
- g->last = 0.0;
+ g->first = g->last;
+ g->last = NAN;
g->count = 0;
return value;
diff --git a/web/api/queries/query.c b/web/api/queries/query.c
index 74a925bc3..6f3cbd5fd 100644
--- a/web/api/queries/query.c
+++ b/web/api/queries/query.c
@@ -17,6 +17,7 @@
#include "percentile/percentile.h"
#include "trimmed_mean/trimmed_mean.h"
+#define QUERY_PLAN_MIN_POINTS 10
#define POINTS_TO_EXPAND_QUERY 5
// ----------------------------------------------------------------------------
@@ -996,6 +997,10 @@ static size_t query_metric_best_tier_for_timeframe(QUERY_METRIC *qm, time_t afte
if(unlikely(after_wanted == before_wanted || points_wanted <= 0))
return query_metric_first_working_tier(qm);
+ if(points_wanted < QUERY_PLAN_MIN_POINTS)
+ // when selecting tiers, aim for a resolution of at least QUERY_PLAN_MIN_POINTS points
+ points_wanted = (before_wanted - after_wanted) > QUERY_PLAN_MIN_POINTS ? QUERY_PLAN_MIN_POINTS : before_wanted - after_wanted;
+
time_t min_first_time_s = 0;
time_t max_last_time_s = 0;
@@ -2070,88 +2075,6 @@ static void rrd2rrdr_log_request_response_metadata(RRDR *r
}
#endif // NETDATA_INTERNAL_CHECKS
-// Returns 1 if an absolute period was requested or 0 if it was a relative period
-bool rrdr_relative_window_to_absolute(time_t *after, time_t *before, time_t *now_ptr) {
- time_t now = now_realtime_sec() - 1;
-
- if(now_ptr)
- *now_ptr = now;
-
- int absolute_period_requested = -1;
- long long after_requested, before_requested;
-
- before_requested = *before;
- after_requested = *after;
-
- // allow relative for before (smaller than API_RELATIVE_TIME_MAX)
- if(ABS(before_requested) <= API_RELATIVE_TIME_MAX) {
- // if the user asked for a positive relative time,
- // flip it to a negative
- if(before_requested > 0)
- before_requested = -before_requested;
-
- before_requested = now + before_requested;
- absolute_period_requested = 0;
- }
-
- // allow relative for after (smaller than API_RELATIVE_TIME_MAX)
- if(ABS(after_requested) <= API_RELATIVE_TIME_MAX) {
- if(after_requested > 0)
- after_requested = -after_requested;
-
- // if the user didn't give an after, use the number of points
- // to give a sane default
- if(after_requested == 0)
- after_requested = -600;
-
- // since the query engine now returns inclusive timestamps
- // it is awkward to return 6 points when after=-5 is given
- // so for relative queries we add 1 second, to give
- // more predictable results to users.
- after_requested = before_requested + after_requested + 1;
- absolute_period_requested = 0;
- }
-
- if(absolute_period_requested == -1)
- absolute_period_requested = 1;
-
- // check if the parameters are flipped
- if(after_requested > before_requested) {
- long long t = before_requested;
- before_requested = after_requested;
- after_requested = t;
- }
-
- // if the query requests future data
- // shift the query back to be in the present time
- // (this may also happen because of the rules above)
- if(before_requested > now) {
- long long delta = before_requested - now;
- before_requested -= delta;
- after_requested -= delta;
- }
-
- time_t absolute_minimum_time = now - (10 * 365 * 86400);
- time_t absolute_maximum_time = now + (1 * 365 * 86400);
-
- if (after_requested < absolute_minimum_time && !unittest_running)
- after_requested = absolute_minimum_time;
-
- if (after_requested > absolute_maximum_time && !unittest_running)
- after_requested = absolute_maximum_time;
-
- if (before_requested < absolute_minimum_time && !unittest_running)
- before_requested = absolute_minimum_time;
-
- if (before_requested > absolute_maximum_time && !unittest_running)
- before_requested = absolute_maximum_time;
-
- *before = before_requested;
- *after = after_requested;
-
- return (absolute_period_requested != 1);
-}
-
// #define DEBUG_QUERY_LOGIC 1
#ifdef DEBUG_QUERY_LOGIC
@@ -2278,7 +2201,7 @@ bool query_target_calculate_window(QUERY_TARGET *qt) {
}
// convert our before_wanted and after_wanted to absolute
- rrdr_relative_window_to_absolute(&after_wanted, &before_wanted, NULL);
+ rrdr_relative_window_to_absolute(&after_wanted, &before_wanted, NULL, unittest_running);
query_debug_log(":relative2absolute after %ld, before %ld", after_wanted, before_wanted);
if (natural_points && (options & RRDR_OPTION_SELECTED_TIER) && tier > 0 && storage_tiers > 1) {
@@ -2983,11 +2906,11 @@ static RRDR *rrd2rrdr_group_by_initialize(ONEWAYALLOC *owa, QUERY_TARGET *qt) {
}
// initialize partial trimming
- r->partial_data_trimming.max_update_every = update_every_max;
+ r->partial_data_trimming.max_update_every = update_every_max * 2;
r->partial_data_trimming.expected_after =
(!query_target_aggregatable(qt) &&
- qt->window.before >= qt->window.now - update_every_max) ?
- qt->window.before - update_every_max :
+ qt->window.before >= qt->window.now - r->partial_data_trimming.max_update_every) ?
+ qt->window.before - r->partial_data_trimming.max_update_every :
qt->window.before;
r->partial_data_trimming.trimmed_after = qt->window.before;
@@ -3139,6 +3062,8 @@ static void rrdr2rrdr_group_by_partial_trimming(RRDR *r) {
if(unlikely(i < 0))
return;
+ // internal_error(true, "Found trimmable index %zd (from 0 to %zu)", i, r->n - 1);
+
size_t last_row_gbc = 0;
for (; i < (ssize_t)r->n; i++) {
size_t row_gbc = 0;
@@ -3149,8 +3074,11 @@ static void rrdr2rrdr_group_by_partial_trimming(RRDR *r) {
row_gbc += r->gbc[ i * r->d + d ];
}
- if (unlikely(r->t[i] >= trimmable_after && row_gbc < last_row_gbc)) {
+ // internal_error(true, "GBC of index %zd is %zu", i, row_gbc);
+
+ if (unlikely(r->t[i] >= trimmable_after && (row_gbc < last_row_gbc || !row_gbc))) {
// discard the rest of the points
+ // internal_error(true, "Discarding points %zd to %zu", i, r->n - 1);
r->partial_data_trimming.trimmed_after = r->t[i];
r->rows = i;
break;
diff --git a/web/api/queries/rrdr.h b/web/api/queries/rrdr.h
index c4a1f83f2..e02e00675 100644
--- a/web/api/queries/rrdr.h
+++ b/web/api/queries/rrdr.h
@@ -206,8 +206,6 @@ RRDR *rrd2rrdr_legacy(
RRDR *rrd2rrdr(ONEWAYALLOC *owa, struct query_target *qt);
bool query_target_calculate_window(struct query_target *qt);
-bool rrdr_relative_window_to_absolute(time_t *after, time_t *before, time_t *now_ptr);
-
#ifdef __cplusplus
}
#endif
diff --git a/web/api/queries/weights.c b/web/api/queries/weights.c
index 8ffd8951a..2782aef60 100644
--- a/web/api/queries/weights.c
+++ b/web/api/queries/weights.c
@@ -169,7 +169,7 @@ static size_t registered_results_to_json_charts(DICTIONARY *results, BUFFER *wb,
size_t examined_dimensions, usec_t duration,
WEIGHTS_STATS *stats) {
- buffer_json_initialize(wb, "\"", "\"", 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
results_header_to_json(results, wb, after, before, baseline_after, baseline_before,
points, method, group, options, shifts, examined_dimensions, duration, stats);
@@ -221,7 +221,7 @@ static size_t registered_results_to_json_contexts(DICTIONARY *results, BUFFER *w
size_t examined_dimensions, usec_t duration,
WEIGHTS_STATS *stats) {
- buffer_json_initialize(wb, "\"", "\"", 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
results_header_to_json(results, wb, after, before, baseline_after, baseline_before,
points, method, group, options, shifts, examined_dimensions, duration, stats);
@@ -739,7 +739,7 @@ static size_t registered_results_to_json_multinode_no_group_by(
size_t examined_dimensions, struct query_weights_data *qwd,
WEIGHTS_STATS *stats,
struct query_versions *versions) {
- buffer_json_initialize(wb, "\"", "\"", 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_uint64(wb, "api", 2);
results_header_to_json_v2(results, wb, qwd, after, before, baseline_after, baseline_before,
@@ -958,7 +958,7 @@ static size_t registered_results_to_json_multinode_group_by(
size_t examined_dimensions, struct query_weights_data *qwd,
WEIGHTS_STATS *stats,
struct query_versions *versions) {
- buffer_json_initialize(wb, "\"", "\"", 0, true, options & RRDR_OPTION_MINIFY);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, (options & RRDR_OPTION_MINIFY) ? BUFFER_JSON_OPTIONS_MINIFY : BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_uint64(wb, "api", 2);
results_header_to_json_v2(results, wb, qwd, after, before, baseline_after, baseline_before,
@@ -1806,8 +1806,10 @@ int web_api_v12_weights(BUFFER *wb, QUERY_WEIGHTS_REQUEST *qwr) {
}
};
- if(!rrdr_relative_window_to_absolute(&qwr->after, &qwr->before, NULL))
+ if(!rrdr_relative_window_to_absolute(&qwr->after, &qwr->before, NULL, false))
buffer_no_cacheable(wb);
+ else
+ buffer_cacheable(wb);
if (qwr->before <= qwr->after) {
resp = HTTP_RESP_BAD_REQUEST;
@@ -1821,7 +1823,7 @@ int web_api_v12_weights(BUFFER *wb, QUERY_WEIGHTS_REQUEST *qwr) {
if(qwr->baseline_before <= API_RELATIVE_TIME_MAX)
qwr->baseline_before += qwr->after;
- rrdr_relative_window_to_absolute(&qwr->baseline_after, &qwr->baseline_before, NULL);
+ rrdr_relative_window_to_absolute(&qwr->baseline_after, &qwr->baseline_before, NULL, false);
if (qwr->baseline_before <= qwr->baseline_after) {
resp = HTTP_RESP_BAD_REQUEST;
diff --git a/web/api/web_api.c b/web/api/web_api.c
index 4372bb8cb..7a4704bd5 100644
--- a/web/api/web_api.c
+++ b/web/api/web_api.c
@@ -6,7 +6,7 @@ bool netdata_is_protected_by_bearer = false; // this is controlled by cloud, at
DICTIONARY *netdata_authorized_bearers = NULL;
static bool web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL endpoint_acl) {
- if(endpoint_acl == WEB_CLIENT_ACL_NOCHECK)
+ if(endpoint_acl == WEB_CLIENT_ACL_NONE || (endpoint_acl & WEB_CLIENT_ACL_NOCHECK))
// the endpoint is totally public
return true;
@@ -23,27 +23,58 @@ static bool web_client_check_acl_and_bearer(struct web_client *w, WEB_CLIENT_ACL
// endpoint does not require a bearer
return true;
- if((w->acl & (WEB_CLIENT_ACL_ACLK|WEB_CLIENT_ACL_WEBRTC)) || api_check_bearer_token(w))
+ if((w->acl & (WEB_CLIENT_ACL_ACLK|WEB_CLIENT_ACL_WEBRTC)))
// the request is coming from ACLK or WEBRTC (authorized already),
- // or we have a valid bearer on the request
return true;
+ // at this point we need a bearer to serve the request
+ // either because:
+ //
+ // 1. WEB_CLIENT_ACL_BEARER_REQUIRED, or
+ // 2. netdata_is_protected_by_bearer == true
+ //
+
+ BEARER_STATUS t = api_check_bearer_token(w);
+ if(t == BEARER_STATUS_AVAILABLE_AND_VALIDATED)
+ // we have a valid bearer on the request
+ return true;
+
+ netdata_log_info("BEARER: bearer is required for request: code %d", t);
+
return false;
}
int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_path_endpoint, struct web_api_command *api_commands) {
+ buffer_no_cacheable(w->response.data);
+
if(unlikely(!url_path_endpoint || !*url_path_endpoint)) {
buffer_flush(w->response.data);
buffer_sprintf(w->response.data, "Which API command?");
return HTTP_RESP_BAD_REQUEST;
}
- uint32_t hash = simple_hash(url_path_endpoint);
+ char *api_command = strchr(url_path_endpoint, '/');
+ if (likely(api_command == NULL)) // only config command supports subpaths for now
+ api_command = url_path_endpoint;
+ else {
+ size_t api_command_len = api_command - url_path_endpoint;
+ api_command = callocz(1, api_command_len + 1);
+ memcpy(api_command, url_path_endpoint, api_command_len);
+ }
+
+ uint32_t hash = simple_hash(api_command);
for(int i = 0; api_commands[i].command ; i++) {
- if(unlikely(hash == api_commands[i].hash && !strcmp(url_path_endpoint, api_commands[i].command))) {
+ if(unlikely(hash == api_commands[i].hash && !strcmp(api_command, api_commands[i].command))) {
+ if(unlikely(!api_commands[i].allow_subpaths && api_command != url_path_endpoint)) {
+ buffer_flush(w->response.data);
+ buffer_sprintf(w->response.data, "API command '%s' does not support subpaths.", api_command);
+ freez(api_command);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
if(unlikely(!web_client_check_acl_and_bearer(w, api_commands[i].acl)))
- return web_client_bearer_required(w);
+ return web_client_permission_denied(w);
char *query_string = (char *)buffer_tostring(w->url_query_string_decoded);
@@ -54,6 +85,9 @@ int web_client_api_request_vX(RRDHOST *host, struct web_client *w, char *url_pat
}
}
+ if (api_command != url_path_endpoint)
+ freez(api_command);
+
buffer_flush(w->response.data);
buffer_strcat(w->response.data, "Unsupported API command: ");
buffer_strcat_htmlescape(w->response.data, url_path_endpoint);
diff --git a/web/api/web_api.h b/web/api/web_api.h
index 840ac8dcb..f7ae45ad0 100644
--- a/web/api/web_api.h
+++ b/web/api/web_api.h
@@ -11,15 +11,26 @@
extern bool netdata_is_protected_by_bearer;
extern DICTIONARY *netdata_authorized_bearers;
-bool api_check_bearer_token(struct web_client *w);
-bool extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len);
-void bearer_tokens_init(void);
+typedef enum __attribute__((packed)) {
+ BEARER_STATUS_NO_BEARER_IN_HEADERS,
+ BEARER_STATUS_BEARER_DOES_NOT_FIT,
+ BEARER_STATUS_NOT_PARSABLE,
+ BEARER_STATUS_EXTRACTED_FROM_HEADER,
+ BEARER_STATUS_NO_BEARERS_DICTIONARY,
+ BEARER_STATUS_NOT_FOUND_IN_DICTIONARY,
+ BEARER_STATUS_EXPIRED,
+ BEARER_STATUS_AVAILABLE_AND_VALIDATED,
+} BEARER_STATUS;
+
+BEARER_STATUS api_check_bearer_token(struct web_client *w);
+BEARER_STATUS extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len);
struct web_api_command {
const char *command;
uint32_t hash;
WEB_CLIENT_ACL acl;
int (*callback)(RRDHOST *host, struct web_client *w, char *url);
+ unsigned int allow_subpaths;
};
struct web_client;
diff --git a/web/api/web_api_v1.c b/web/api/web_api_v1.c
index 1e4f9c41c..60962413d 100644
--- a/web/api/web_api_v1.c
+++ b/web/api/web_api_v1.c
@@ -883,6 +883,11 @@ static inline int web_client_api_request_v1_data(RRDHOST *host, struct web_clien
else if(format == DATASOURCE_JSONP)
buffer_strcat(w->response.data, ");");
+ if(qt->internal.relative)
+ buffer_no_cacheable(w->response.data);
+ else
+ buffer_cacheable(w->response.data);
+
cleanup:
query_target_release(qt);
onewayalloc_destroy(owa);
@@ -936,7 +941,7 @@ inline int web_client_api_request_v1_registry(RRDHOST *host, struct web_client *
char *cookie = strstr(w->response.data->buffer, NETDATA_REGISTRY_COOKIE_NAME "=");
if(cookie)
strncpyz(person_guid, &cookie[sizeof(NETDATA_REGISTRY_COOKIE_NAME)], UUID_STR_LEN - 1);
- else if(!extract_bearer_token_from_request(w, person_guid, sizeof(person_guid)))
+ else if(extract_bearer_token_from_request(w, person_guid, sizeof(person_guid)) != BEARER_STATUS_EXTRACTED_FROM_HEADER)
person_guid[0] = '\0';
char action = '\0';
@@ -1194,7 +1199,7 @@ static void host_collectors(RRDHOST *host, BUFFER *wb) {
extern int aclk_connected;
inline int web_client_api_request_v1_info_fill_buffer(RRDHOST *host, BUFFER *wb) {
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(wb, "version", rrdhost_program_version(host));
buffer_json_member_add_string(wb, "uid", host->machine_guid);
@@ -1314,7 +1319,7 @@ int web_client_api_request_v1_ml_info(RRDHOST *host, struct web_client *w, char
buffer_flush(wb);
wb->content_type = CT_APPLICATION_JSON;
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
ml_host_get_detection_info(host, wb);
buffer_json_finalize(wb);
@@ -1419,7 +1424,7 @@ int web_client_api_request_v1_functions(RRDHOST *host, struct web_client *w, cha
wb->content_type = CT_APPLICATION_JSON;
buffer_no_cacheable(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
host_functions2json(host, wb);
buffer_json_finalize(wb);
@@ -1520,43 +1525,43 @@ int web_client_api_request_v1_dbengine_stats(RRDHOST *host __maybe_unused, struc
#endif
static struct web_api_command api_commands_v1[] = {
- { "info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_info },
- { "data", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_data },
- { "chart", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_chart },
- { "charts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_charts },
- { "context", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_context },
- { "contexts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_contexts },
+ { "info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_info, 0 },
+ { "data", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_data, 0 },
+ { "chart", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_chart, 0 },
+ { "charts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_charts, 0 },
+ { "context", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_context, 0 },
+ { "contexts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_contexts, 0 },
// registry checks the ACL by itself, so we allow everything
- { "registry", 0, WEB_CLIENT_ACL_NOCHECK, web_client_api_request_v1_registry },
+ { "registry", 0, WEB_CLIENT_ACL_NOCHECK, web_client_api_request_v1_registry, 0 },
// badges can be fetched with both dashboard and badge permissions
- { "badge.svg", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC | WEB_CLIENT_ACL_BADGE, web_client_api_request_v1_badge },
+ { "badge.svg", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC | WEB_CLIENT_ACL_BADGE, web_client_api_request_v1_badge, 0 },
- { "alarms", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms },
- { "alarms_values", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms_values },
- { "alarm_log", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_log },
- { "alarm_variables", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_variables },
- { "alarm_count", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_count },
- { "allmetrics", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_allmetrics },
+ { "alarms", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms, 0 },
+ { "alarms_values", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarms_values, 0 },
+ { "alarm_log", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_log, 0 },
+ { "alarm_variables", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_variables, 0 },
+ { "alarm_count", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_alarm_count, 0 },
+ { "allmetrics", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_allmetrics, 0 },
#if defined(ENABLE_ML)
- { "ml_info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_ml_info },
+ { "ml_info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_ml_info, 0 },
// { "ml_models", 0, WEB_CLIENT_ACL_DASHBOARD, web_client_api_request_v1_ml_models },
#endif
- {"manage/health", 0, WEB_CLIENT_ACL_MGMT | WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER, web_client_api_request_v1_mgmt_health },
- { "aclk", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_aclk_state },
- { "metric_correlations", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_metric_correlations },
- { "weights", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_weights },
+ {"manage/health", 0, WEB_CLIENT_ACL_MGMT | WEB_CLIENT_ACL_ACLK, web_client_api_request_v1_mgmt_health, 0 },
+ { "aclk", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_aclk_state, 0 },
+ { "metric_correlations", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_metric_correlations, 0 },
+ { "weights", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_weights, 0 },
- {"function", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_function },
- {"functions", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_functions },
+ {"function", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_function, 0 },
+ {"functions", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v1_functions, 0 },
- { "dbengine_stats", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_dbengine_stats },
+ { "dbengine_stats", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v1_dbengine_stats, 0 },
// terminator
- { NULL, 0, WEB_CLIENT_ACL_NONE, NULL },
+ { NULL, 0, WEB_CLIENT_ACL_NONE, NULL, 0 },
};
inline int web_client_api_request_v1(RRDHOST *host, struct web_client *w, char *url_path_endpoint) {
diff --git a/web/api/web_api_v2.c b/web/api/web_api_v2.c
index 97647f5d6..850282121 100644
--- a/web/api/web_api_v2.c
+++ b/web/api/web_api_v2.c
@@ -54,13 +54,13 @@ static time_t bearer_get_token(uuid_t *uuid) {
#define HTTP_REQUEST_AUTHORIZATION_BEARER "\r\nAuthorization: Bearer "
-bool extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len) {
+BEARER_STATUS extract_bearer_token_from_request(struct web_client *w, char *dst, size_t dst_len) {
const char *req = buffer_tostring(w->response.data);
size_t req_len = buffer_strlen(w->response.data);
const char *bearer = strcasestr(req, HTTP_REQUEST_AUTHORIZATION_BEARER);
if(!bearer)
- return false;
+ return BEARER_STATUS_NO_BEARER_IN_HEADERS;
const char *token_start = bearer + sizeof(HTTP_REQUEST_AUTHORIZATION_BEARER) - 1;
@@ -69,26 +69,33 @@ bool extract_bearer_token_from_request(struct web_client *w, char *dst, size_t d
const char *token_end = token_start + UUID_STR_LEN - 1 + 2;
if (token_end > req + req_len)
- return false;
+ return BEARER_STATUS_BEARER_DOES_NOT_FIT;
strncpyz(dst, token_start, dst_len - 1);
uuid_t uuid;
if (uuid_parse(dst, uuid) != 0)
- return false;
+ return BEARER_STATUS_NOT_PARSABLE;
- return true;
+ return BEARER_STATUS_EXTRACTED_FROM_HEADER;
}
-bool api_check_bearer_token(struct web_client *w) {
+BEARER_STATUS api_check_bearer_token(struct web_client *w) {
if(!netdata_authorized_bearers)
- return false;
+ return BEARER_STATUS_NO_BEARERS_DICTIONARY;
char token[UUID_STR_LEN];
- if(!extract_bearer_token_from_request(w, token, sizeof(token)))
- return false;
+ BEARER_STATUS t = extract_bearer_token_from_request(w, token, sizeof(token));
+ if(t != BEARER_STATUS_EXTRACTED_FROM_HEADER)
+ return t;
struct bearer_token *z = dictionary_get(netdata_authorized_bearers, token);
- return z && z->expires_s > now_monotonic_sec();
+ if(!z)
+ return BEARER_STATUS_NOT_FOUND_IN_DICTIONARY;
+
+ if(z->expires_s < now_monotonic_sec())
+ return BEARER_STATUS_EXPIRED;
+
+ return BEARER_STATUS_AVAILABLE_AND_VALIDATED;
}
static bool verify_agent_uuids(const char *machine_guid, const char *node_id, const char *claim_id) {
@@ -153,7 +160,7 @@ int api_v2_bearer_protection(RRDHOST *host __maybe_unused, struct web_client *w
BUFFER *wb = w->response.data;
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_boolean(wb, "bearer_protection", netdata_is_protected_by_bearer);
buffer_json_finalize(wb);
@@ -192,7 +199,7 @@ int api_v2_bearer_token(RRDHOST *host __maybe_unused, struct web_client *w __may
BUFFER *wb = w->response.data;
buffer_flush(wb);
- buffer_json_initialize(wb, "\"", "\"", 0, true, false);
+ buffer_json_initialize(wb, "\"", "\"", 0, true, BUFFER_JSON_OPTIONS_DEFAULT);
buffer_json_member_add_string(wb, "mg", localhost->machine_guid);
buffer_json_member_add_boolean(wb, "bearer_protection", netdata_is_protected_by_bearer);
buffer_json_member_add_uuid(wb, "token", &uuid);
@@ -629,6 +636,11 @@ static int web_client_api_request_v2_data(RRDHOST *host __maybe_unused, struct w
else if(format == DATASOURCE_JSONP)
buffer_strcat(w->response.data, ");");
+ if(qt->internal.relative)
+ buffer_no_cacheable(w->response.data);
+ else
+ buffer_cacheable(w->response.data);
+
cleanup:
query_target_release(qt);
onewayalloc_destroy(owa);
@@ -639,31 +651,97 @@ static int web_client_api_request_v2_webrtc(RRDHOST *host __maybe_unused, struct
return webrtc_new_connection(w->post_payload, w->response.data);
}
+#define CONFIG_API_V2_URL "/api/v2/config"
+static int web_client_api_request_v2_config(RRDHOST *host __maybe_unused, struct web_client *w, char *query) {
+
+ char *url = strdupz(buffer_tostring(w->url_as_received));
+ char *url_full = url;
+
+ if (strncmp(url, CONFIG_API_V2_URL, strlen(CONFIG_API_V2_URL)) != 0) {
+ buffer_sprintf(w->response.data, "Invalid URL");
+ return HTTP_RESP_BAD_REQUEST;
+ }
+ url += strlen(CONFIG_API_V2_URL);
+
+ char *save_ptr = NULL;
+ char *plugin = strtok_r(url, "/", &save_ptr);
+ char *module = strtok_r(NULL, "/", &save_ptr);
+ char *job_id = strtok_r(NULL, "/", &save_ptr);
+ char *extra = strtok_r(NULL, "/", &save_ptr);
+
+ buffer_flush(w->response.data);
+ if (extra != NULL) {
+ buffer_sprintf(w->response.data, "Invalid URL");
+ freez(url_full);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ int http_method;
+ switch (w->mode)
+ {
+ case WEB_CLIENT_MODE_GET:
+ http_method = HTTP_METHOD_GET;
+ break;
+ case WEB_CLIENT_MODE_POST:
+ http_method = HTTP_METHOD_POST;
+ break;
+ case WEB_CLIENT_MODE_PUT:
+ http_method = HTTP_METHOD_PUT;
+ break;
+ case WEB_CLIENT_MODE_DELETE:
+ http_method = HTTP_METHOD_DELETE;
+ break;
+ default:
+ buffer_sprintf(w->response.data, "Invalid HTTP method");
+ freez(url_full);
+ return HTTP_RESP_BAD_REQUEST;
+ }
+
+ struct uni_http_response resp = dyn_conf_process_http_request(http_method, plugin, module, job_id, w->post_payload, w->post_payload_size);
+ if (resp.content[resp.content_length - 1] != '\0') {
+ char *con = mallocz(resp.content_length + 1);
+ memcpy(con, resp.content, resp.content_length);
+ con[resp.content_length] = '\0';
+ if (resp.content_free)
+ resp.content_free(resp.content);
+ resp.content = con;
+ resp.content_free = freez_dyncfg;
+ }
+ buffer_strcat(w->response.data, resp.content);
+ if (resp.content_free)
+ resp.content_free(resp.content);
+ w->response.data->content_type = resp.content_type;
+ freez(url_full);
+ return resp.status;
+}
+
static struct web_api_command api_commands_v2[] = {
- {"info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_info},
+ {"info", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_info, 0},
+
+ {"data", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_data, 0},
+ {"weights", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_weights, 0},
- {"data", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_data},
- {"weights", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_weights},
+ {"contexts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_contexts, 0},
+ {"nodes", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_nodes, 0},
+ {"node_instances", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_node_instances, 0},
+ {"versions", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_versions, 0},
+ {"functions", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v2_functions, 0},
+ {"q", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_q, 0},
+ {"alerts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alerts, 0},
- {"contexts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_contexts},
- {"nodes", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_nodes},
- {"node_instances", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_node_instances},
- {"versions", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_versions},
- {"functions", 0, WEB_CLIENT_ACL_ACLK_WEBRTC_DASHBOARD_WITH_BEARER | ACL_DEV_OPEN_ACCESS, web_client_api_request_v2_functions},
- {"q", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_q},
- {"alerts", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alerts},
+ {"alert_transitions", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alert_transitions, 0},
+ {"alert_config", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alert_config, 0},
- {"alert_transitions", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alert_transitions},
- {"alert_config", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_alert_config},
+ {"claim", 0, WEB_CLIENT_ACL_NOCHECK, web_client_api_request_v2_claim, 0},
- {"claim", 0, WEB_CLIENT_ACL_NOCHECK, web_client_api_request_v2_claim},
+ {"rtc_offer", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, web_client_api_request_v2_webrtc, 0},
+ {"bearer_protection", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, api_v2_bearer_protection, 0},
+ {"bearer_get_token", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, api_v2_bearer_token, 0},
- {"rtc_offer", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, web_client_api_request_v2_webrtc},
- {"bearer_protection", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, api_v2_bearer_protection},
- {"bearer_get_token", 0, WEB_CLIENT_ACL_ACLK | ACL_DEV_OPEN_ACCESS, api_v2_bearer_token},
+ {"config", 0, WEB_CLIENT_ACL_DASHBOARD_ACLK_WEBRTC, web_client_api_request_v2_config, 1},
// terminator
- {NULL, 0, WEB_CLIENT_ACL_NONE, NULL},
+ {NULL, 0, WEB_CLIENT_ACL_NONE, NULL, 0},
};
inline int web_client_api_request_v2(RRDHOST *host, struct web_client *w, char *url_path_endpoint) {
diff --git a/web/gui/README.md b/web/gui/README.md
index bbedde33f..49b6a55b6 100644
--- a/web/gui/README.md
+++ b/web/gui/README.md
@@ -1,13 +1,4 @@
-
-
-# Local Agent dashboard
+# Legacy Agent dashboard
> ⚠️ You're checking the documentation for the legacy Agent dashboard. For the current version please check [Accessing Netdata Dashboards](https://github.com/netdata/netdata/blob/master/docs/category-overview-pages/accessing-netdata-dashboards.md).
diff --git a/web/gui/dashboard_info.js b/web/gui/dashboard_info.js
index d00d5b135..f3071aea9 100644
--- a/web/gui/dashboard_info.js
+++ b/web/gui/dashboard_info.js
@@ -140,6 +140,12 @@ netdataDashboard.menu = {
info: 'Detailed information for each CPU of the system. A summary of the system for all CPUs can be found at the System Overview section.'
},
+ 'amdgpu': {
+ title: 'AMD GPUs',
+ icon: '',
+ info: 'Detailed information for each AMD GPU of the system. Temperature, fan speed, voltage and power metrics can be found at the Sensors section.'
+ },
+
'mem': {
title: 'Memory',
icon: '',
@@ -1177,6 +1183,10 @@ netdataDashboard.submenu = {
info: 'A connection is an established line of communication between a client and the PostgreSQL server. Each connection adds to the load on the PostgreSQL server. To guard against running out of memory or overloading the database the max_connections parameter (default = 100) defines the maximum number of concurrent connections to the database server. A separate parameter, superuser_reserved_connections (default = 3), defines the quota for superuser connections (so that superusers can connect even if all other connection slots are blocked).'
},
+ 'system.power_consumption': {
+ info: 'The current power consumption of the zones defined by the power capping framework.'
+ }
+
};
// ----------------------------------------------------------------------------
@@ -1520,7 +1530,7 @@ netdataDashboard.context = {
info: 'Memory paged from/to disk. This is usually the total disk I/O of the system.'
},
- 'system.swapio': {
+ 'mem.swapio': {
info: 'System swap I/O.
'+
'In - pages the system has swapped in from disk to RAM. '+
'Out - pages the system has swapped out from RAM to disk.'
@@ -1665,7 +1675,7 @@ netdataDashboard.context = {
info: 'System Random Access Memory (i.e. physical memory) usage.'
},
- 'system.swap': {
+ 'mem.swap': {
info: 'System swap memory usage. Swap space is used when the amount of physical memory (RAM) is full. When the system needs more memory resources and the RAM is full, inactive pages in memory are moved to the swap space (usually a disk, a disk partition or a file).'
},
@@ -1730,6 +1740,10 @@ netdataDashboard.context = {
info: 'Difference between the number of calls to functions that close a task and release a task.'+ ebpfChartProvides
},
+ 'system.power_consumption': {
+ info: 'The current power consumption of the zones defined by the power capping framework.'
+ },
+
// ------------------------------------------------------------------------
// CPU charts
diff --git a/web/gui/index.html b/web/gui/index.html
index 2e917b7e0..a53ec9e3c 100644
--- a/web/gui/index.html
+++ b/web/gui/index.html
@@ -1,42 +1,43 @@
-Netdata Agent ConsoleWelcome to Netdata
Loading latest Netdata Cloud UI...
Welcome to Netdata
Loading latest Netdata UI...
\ No newline at end of file
+
+ envSettings.tracking = window.localNetdataRegistry.anonymousStatistics
+
+ let withoutNodes = btoa(JSON.stringify({
+ registry: data.registry,
+ machine_guid: data.machine_guid,
+ hostname: data.hostname,
+ agent: data.agent,
+ nodes: []
+ }))
+ let iframe = document.createElement('iframe');
+ iframe.src = data.registry + "/registry-access.html?x=" + withoutNodes + "&originUrl=" + window.envSettings.agentApiUrl;
+ iframe.style = { position: "absolute", left: "-99999999px" };
+ iframe.width = 0 ;
+ iframe.height = 0;
+ iframe.tabindex = -1;
+ iframe.title = "empty";
+ iframe.classList.add("hidden");
+ document.body.appendChild(iframe);
+
+ setTimeout(function () {
+ document.title = data.hostname + ': Netdata Agent Console';
+ iframe.contentWindow.postMessage(["netdata-registry", window.envSettings.agentApiUrl, data], "*")
+ }, 300);
+
+ window.addEventListener('message', function(event) {
+ if (event.source !== iframe.contentWindow) return;
+
+ if (event.data.status === "disabled") console.error("Your netdata registry is disabled! Check your configuration.")
+ });
+ })